[关闭]
@twein89 2017-05-23T11:44:37.000000Z 字数 1273 阅读 601

pyspider介绍

爬虫,python


框架结构

组成
组件:

开发须知


抓取脚本编写

几个常用的api
self.crawl(url, **kwargs)
self.crawl 是主要接口, 告诉框架 pyspider 哪些url(s) 需要抓取.

  1. def on_start(self):
  2. self.crawl('http://scrapy.org/', callback=self.index_page)

age
控制任务的有效期。

  1. @config(age=10 * 24 * 60 * 60)
  2. def index_page(self, response):
  3. ...

@every(minutes=0, seconds=0)
method will been called every minutes or seconds

  1. @every(minutes=24 * 60)
  2. def on_start(self):
  3. for url in urllist:
  4. self.crawl(url, callback=self.index_page)

save
用来在callback中传递参数

  1. def on_start(self):
  2. self.crawl('http://www.example.org/', callback=self.callback,
  3. save={'a': 123})
  4. def callback(self, response):
  5. return response.save['a']

fetch_type
设为js可以抓取需要js渲染的页面
js_script
用来在页面中执行一段js脚本

  1. def on_start(self):
  2. self.crawl('http://www.example.org/', callback=self.callback,
  3. fetch_type='js', js_script='''
  4. function() {
  5. window.scrollTo(0,document.body.scrollHeight);
  6. return 123;
  7. }
  8. ''')

参考api文档
页面解析器pyquery文档
框架作者博客里有pyspider中文系列教程,可以先看这个

调试

想要调试一个项目比如zj_huzhou.py这个脚本
可以在本地用pyspider one命令调试,例如pyspider one zhejiang/zj_huzhou.py


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注