文章目录
基于Scrapy
框架的爬虫项目
安装scrapy
先安装scrapy
框架,安装完再进行爬虫项目的创建
> pip install scrapy
安装完验证是否安装成功的指令
> scrapy version
这时会出现scrapy
的版本号,出现如下版本号即代表scrapy
环境安装成功。
Scrapy 2.5.1
创建scrapy
爬虫项目
输入以下指令进行项目的新建以及项目初始化
> scrapy startproject scrapyTest
New Scrapy project 'scrapyTest', using template directory 'd:\programdata\anaconda3\lib\site-packages\scrapy\templates\project', created in:
E:\Learning\pythonProject\scrapyTest
You can start your first spider with:
cd scrapyTest
scrapy genspider example example.com
> cd scrapyTest
> cd scrapyTest
> cd spiders
> scrapy genspider test_spider https://www.bilibili.com/
Created spider 'test_spider' using template 'basic' in module:
scrapyTest.spiders.test_spider
至此,项目初始化完成。项目目录如下
settings.py
的配置
fake-useragent
对频繁更换UserAgent
提供了很好的支持,而UserAgent
是识别浏览器的一串字符串,相当于浏览器的身份证,在利用爬虫爬 取网站数据时,频繁更换UserAgent
可以避免触发相应的反爬机制,所以我们先安装fake-useragent
。
> pip install fake-useragent
打开settings.py
,添加如下代码
from fake_useragent import UserAgent
USER_AGENT = UserAgent().random # 生成随机请求头
LOG_LEVEL = 'ERROR' # 只打印error级别的日志
ROBOTSTXT_OBEY = False
COOKIES_ENABLED = False
DOWNLOAD_DELAY = 30
注:或者找到这些注释将其注释去掉,没有的则补上
ROBOTSTXT_OBEY = True
的True
改为False
,表示不遵循 Robot协议;并将ITEM_PIPELINES
的注释去掉,开启爬虫管道;
将COOKIES_ENABLED = False
的注释去掉,
当COOKIES_ENABLED
是注释的时候scrapy
默认没有开启cookie
,
当COOKIES_ENABLED
没有注释,设置为False
的时候scrapy
默认使用了settings
里面的cookie
,
当COOKIES_ENABLED
设置为True
的时候scrapy
就会把settings
的cookie
关掉,使用自定义cookie
,
要设置cookie的话&