scrapy框架
一、性能相关
response =
url_list = [,
url fetch_async(url)
concurrent.futures <span style="color: #0000ff">def<span style="color: #000000"> fetch_async(url):
response =<span style="color: #000000"> requests.get(url) <span style="color: #0000ff">return<span style="color: #000000"> response url_list = [<span style="color: #800000">'<span style="color: #800000">http://www.github.com<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">http://www.bing.com<span style="color: #800000">'<span style="color: #000000">] concurrent.futures <span style="color: #0000ff">def<span style="color: #000000"> fetch_async(url):
response =<span style="color: #000000"> requests.get(url) <span style="color: #0000ff">return<span style="color: #000000"> response <span style="color: #0000ff">def<span style="color: #000000"> callback(future): url_list = [<span style="color: #800000">'<span style="color: #800000">http://www.github.com<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">http://www.bing.com<span style="color: #800000">'<span style="color: #000000">] concurrent.futures <span style="color: #0000ff">def<span style="color: #000000"> fetch_async(url):
response =<span style="color: #000000"> requests.get(url) <span style="color: #0000ff">return<span style="color: #000000"> response url_list = [<span style="color: #800000">'<span style="color: #800000">http://www.github.com<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">http://www.bing.com<span style="color: #800000">'<span style="color: #000000">] concurrent.futures <span style="color: #0000ff">def<span style="color: #000000"> fetch_async(url):
response =<span style="color: #000000"> requests.get(url) <span style="color: #0000ff">return<span style="color: #000000"> response <span style="color: #0000ff">def<span style="color: #000000"> callback(future): url_list = [<span style="color: #800000">'<span style="color: #800000">http://www.github.com<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">http://www.bing.com<span style="color: #800000">'<span style="color: #000000">] ?二、Scrapy 1、Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说,网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 2、scrapy组件 <1>引擎(Scrapy) 用来处理整个系统的数据流处理,触发事务(框架核心) <2>调度器(Scheduler) 用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, <3>下载器(Downloader) 用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) <4>爬虫(Spiders) 爬虫是主要干活的,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面 <5>项目管道(Pipeline) 负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后, <6>下载器中间件(Downloader Middlewares) 位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。 <7>爬虫中间件(Spider Middlewares) 介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。 <8>调度中间件(Scheduler Middewares) 介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应 3、scrapy运行流程
4、scrapy使用 1、基本命令 1-2. scrapy genspider [-t template]
-<span style="color: #000000"> 创建爬虫应用 如: scrapy gensipider scrapy gensipider -<span style="color: #000000">t xmlfeed autohome autohome.com.cn PS: 查看所有命令:scrapy gensipider -<span style="color: #000000">l 查看模板命令:scrapy gensipider -<span style="color: #000000">d 模板名称 3<span style="color: #000000">. scrapy list 4<span style="color: #000000">. scrapy crawl 爬虫应用名称 2、项目结构以及爬虫应用简介 project_name/
project_name/
spiders/
爬虫3.py
文件说明:
scrapy.selector scrapy.http.request <span style="color: #0000ff">class<span style="color: #000000"> DigSpider(scrapy.Spider):
<span style="color: #008000">#<span style="color: #008000"> 爬虫应用的名称,通过此名称启动爬虫命令 name = <span style="color: #800000">"<span style="color: #800000">dig<span style="color: #800000">"
执行此爬虫文件,则在终端进入项目目录执行如下命令: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |