简介
Scrapy
是目前Python的最流行的爬虫框架。
TODO:
基本原理
引用别人总结的:
- 入口为
start_requests
方法或者start_urls
数组 parse
方法一般用yield
来生成一个迭代器
,返回一个或多个Request
/Item
,或者二者都有- 每个
Request
都会默认使用上次请求的Cookies
信息 - 对于需登陆的数据,可以在
start_requests
中进行登陆 - 页面内常用
xpath
或者css selecter
进行解析,也可以使用BeautifulSoup
等其它工具 Spider
的数据请求部分叫Downloader
,Scrapy
是基于事件的,因此从宏观上讲,数据请求和响应是线程分离的Spider
的结果用pipeline
来进行处理,可以自定义各种pipeline
,pipeline
中可以对抓取到的item
进行去重、数据存储等操作Spider
与Downloader
中间有一种叫做middleware
的东西,进行管道式数据加工,有点类似于过滤器、代理之类的- 随机
User_agent
就是通过downloader middleware
来实现的