🦎
Scrapy

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('')