python小白学习笔记:scrapy错误记录

早就想恢复每天在简书上写点啥的习惯,但没想到,表达欲望和写作灵感居然同时枯竭。直到今天,一个普通的周六,像往常的周末一样,本打算用来补上工作日欠下的编程课,结果被bug支配了一整天。

经历了出现bug时的意外,找不到bug时的苦恼,强迫自己从一大堆运行结果中搜索报错信息、比对标准教程找bug的烦躁,发现自己居然犯了许多低级错误的无奈……到现在,终于独立且完好地完成了今天的学习内容。

我也因此终于痛下决心,准备好好总结在学编程过程中的花式犯错。(之前一直都想,但也只是想想而已,真的太懒了……

今天是我学习python的第59天,学习内容是scrapy框架。我理解就是一组方便操作者快速搭建爬虫程序的代码库。

scrapy 框架的组成

第0个问题:scrapy 的安装

教学系统一开始就提示我,如果需要在本地电脑运行,要自行安装scrapy??墒?,我按照给定的做法(在终端中输入“pip install scrapy”),却无论如何也不行,大面积爆红。根据报错信息,在网上检索了很多教程之后,终于发现了一个最稳妥的做法:

1.下载Twisted

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

点击下载地址,进入后按? ctrl+f ,搜索twisted,然后下载对应版本:cp27表示python2.7版本、cp38表示python3.8版本;win32表示Windows32位操作系统、win_amd64表示Windows64位操作系统。

2.安装Twisted

下载完成后,进入终端,切换路径到该文件所在的文件夹下,然后输入pip install 文件名?!厩谢宦肪兜姆椒ㄊ恰癱d+空格+文件夹名称”】

3.安装scrapy

安装Twisted后,再在终端输入pip install scrapy

第1个问题:我该修改哪个文件的代码

终于安装好之后,我就兴冲冲地按照教学指引敲代码了。然而,原样敲完之后,发现居然又报错了。翻了翻前几天学习群里大家的提问和助教的答疑,发现,我少修改了一个文件的代码。

图中items.py文件的代码被我漏掉了

想要让scrapy发挥作用,首先需要正确设置各个模块的参数。我把大部分的注意力都放在了核心文件中,没有注意到应该在items.py中先行定义数据。

当然,除了items.py之外,settings.py和pipelines.py在大多数情况下也是需要修改的,只不过我这次没有漏掉他们。

第2个问题:层级错误

这一部分其实不是新内容了,之前在基础部分已经接触过。但可惜那个时候掌握得就不太扎实,这两块也是让我今天不停找bug但是哪哪都找不到的核心原因。

正确答案是这样写的:

class DoubanSpider(scrapy.Spider):

? ? name = 'douban'

? ? ……(省略)……

? ? def parse(self, response):

? ? ? ? bs = BeautifulSoup(response.text,'html.parser)

? ? ? ? ……(省略)……

而我是这样写的:

class DoubanSpider(scrapy.Spider):

????name = 'douban'

……(省略)……

def parse(self, response):

????bs = BeautifulSoup(response.text,'html.parser)

……(省略)……

从表面看,内容是一模一样的,但是语言的层级却出了问题,导致一直报错,找了一下午的bug。

第3个问题:项目名称错误导致无法call back

由于粗心大意,在最开始建项目的时候把名字打错了(应该是douban,达成了doban)。但是后期在代码中使用的都是DoubanItem、DoubanSpider,因此导致了报错。

不过和上一个问题比,这个简直是小巫见大巫了,大概只用了10分钟就彻底解决了。没错,就是删掉重新建立项目了。

第4个问题:unkown command crawl

严格来说,我不认为这是我的问题。因为按照教程说的做(在根目录中建立main.py文档,写入并执行cmdline命令),就是会出现这个问题,即便是下载了所谓的正确答案,也会出现这个问题。但是选择另一种方法,就每次都不会错啦。

from scrapy import cmdline

import sys,os

dirpath=os.path.dirname(os.path.abspath(__file__))

# 获取当前路径

print(dirpath)

sys.path.append(dirpath)? # 将路径添加到sys.path

os.chdir(dirpath)? ? ? ? # 切换到当前目录

cmdline.execute(['scrapy','crawl','douban'])

# 项目不同,把douban改为你项目的

我相信,在学习编程这条路上,以后应该还会有大量的bug和错误等待着我吧。之所以没有选择自己默默整理错误,而是把这份文档公开,也是希望能够对初学者有一点帮助。毕竟,我每次出了错不知道该怎么办的时候,也都是靠百度前辈们的学习笔记慢慢摸索出正确的方向呢。

每当遇到困难想放弃的时候,问问自己:我当时为什么选择开始?

愿不忘初心~未完待续~

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351