爬虫步骤:
- 分析需求
- 获取网页的URL
- 下载网页内容(Downloader下载器)
- 定位元素位置, 获取特定的信息(Spiders 蜘蛛)
- 存储信息(ItemPipeline, 一条一条从管里传输)
- 队列存储(Scheduler 调度器)
Scrapy:
学习文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/index.html
- 首先, Spiders 给我们一个初始的URL, Spider获取列表页内的详情页的URL.
- 其次, 将URL 存储到Scheduler内, 然后 Scheduler 就会自动将URL放到Downloader内执行,详情页Download之后, 返回response给Spiders.
- 再次, Spiders会将response获取到并且查找需要的内容, 内容进行封装item.
- 最后, 这个item就会被传输到ItemPipeline中, 存储或者其他操作
安装scrapy的方法:
方法1:
# 由于scrapy需要依赖wheel和Twisted这两个包,故需要先按装好再去安装scrapy
pip install wheel
pip install 你的路径/Twisted-18.7.0-cp35-cp35m-win_amd64.whl
pip install scrapy
.方法2:
如果是Anaconda环境,可以直接使用:
conda install scrapy
创建项目:
scrapy startproject 项目名称(scrapy_project)
# 创建spider
cd 项目目录(scrapy_project)
scrapy genspider name xxx.com
# 例如 scrapy genspider baidu baidu.com
运行:
运行, 创建一个.py文件例如(main.py):
main.py
from scrapy.cmdline import execute
execute('scrapy crawl baidu'.split()) # name=baidu
整个目录结构如下:
如果直接爬取拿不到数据,就去setting.py下加入全局请求报文,将DEFAULT_REQUEST_HEADERS 注释打开,加入报文。