Scrapy?
- 基于Python
- 一个快速、高层次的屏幕抓取和web抓取框架
- 用于抓取web站点并从页面中提取结构化的数据
pip scrapy# 部署
scrapy startproject |project name|# 起步
工作流
引擎(Engine)从调度器(scheduler)中取一个URL(由spider文件传去调度器)
-> 引擎把URL封装成一个请求(Request)并传给下载器(Download)
-> 下载器下载URL数据并封装成一个响应(Response)并传回引擎
-> 引擎解析
-> item( -> item pipelines)/ URL( -> Spiders -> 调度器)
项目目录
tutorial/
scrapy.cfg
tutorial/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
...
scrapy.cfg
: 项目的配置文件
tutorial/
: 该项目的python模块。之后您将在此加入代码。
tutorial/items.py
: 项目中的item文件.
tutorial/pipelines.py
: 项目中的pipelines文件.
tutorial/settings.py
: 项目的设置文件.
tutorial/spiders/
: 放置spider代码的目录.
编写一个spider
import scrapy
class new_spider(scrapy.Spider):
name = ""
def start_requests(self):
url = ''
yield scrapy.Request(url=url, callback=self.parse)
def parse(self,response):
item = {}
yield item
设置setting文件
FEED_EXPORT_ENCODING='UTF-8'
ITEM_PIPELINES = {
'theThree.pipelines.ThethreePipeline': 300,
}
ROBOTSTXT_OBEY = True
DEFAULT_REQUEST_HEADERS = 'User-Agent:...'
启动
scrapy crawl projectName
scrapy crawl projectName -o |fileName|
Scrapy终端模式
- cmd进入Scrapy shell
scrapy shell '|URL|'
- Scrapy shell
response.css('')