用了一周的时间总算搞定了,跨过了各种坑,总算调试成功了,记录如下:
1、首先在cmd中用命令行建立douban爬虫项目
scrapy startproject douban
2、我用的是pycharm,导入项目后,
1)在items.py中定义爬取的字段
items.py代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2)在spiders文件夹下建立一个新的爬虫bookspider.py,爬取网页的代码都在这里写。
以下是爬虫bookspider.py代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
3)在settings.py文件中配置请求头及mongodb信息
from faker import Factoryf = Factory.create()USER_AGENT = f.user_agent()
DEFAULT_REQUEST_HEADERS = { ‘Host‘: ‘book.douban.com‘,‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8‘,‘Accept-Language‘: ‘zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3‘,‘Accept-Encoding‘: ‘gzip, deflate, br‘,‘Connection‘: ‘keep-alive‘,}
1 2 3 4 |
|
4)在pipelines.py中编写处理代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
3、在cmd中进入douban项目spiders目录,输入scrapy runspiders bookspider.py,运行编写的爬虫
至此大功告成!
以下是在mongodb中爬取的数据图
感想:
1、pycharm不能直接建立scrapy项目,需要在cmd中用命令scrapy startproject douban建立,
2、同样,在pycharm中如果不配置的话,直接点运行也没有用(一开始不知道怎么回事,点了运行,提示成功了,但是数据库里啥东西也没有,后来上网查了才发现要在cmd中用scrapy命令才行),但也有文章说在pycharm中设置一下就可以运行了,但我没试成功。
3、网上查到的在cmd下先进入项目目录,用命令scrapy crawl 项目名,我就在cmd目录下用scrapy crawl douban,但我试了多次都不行。
以为是不是crawl命令不对,就在cmd下输入scrapy -h查看一下都有啥命令,里面没有crawl命令,但是有一个runspiders 命令,就尝试进入spiders目录,直接运行bookspider.py,至此终于成功。
原文地址:https://www.cnblogs.com/menghome/p/8322328.html