在上篇中我们讲过pyspider的一些简单介绍和使用,那么有小伙伴知道该如何编写吗?当然这是有一定的难度的,对于初学python的小伙伴们来说还达不到这样的能力,所以小伙伴们可以先看看小编的代码,再进行模仿和学习。代码方面不是很长,但是比较复杂,接下来我们就一起看看如何编写pyspider吧。
代码:
from pyspider.libs.base_handler import *class Handler(BaseHandler): crawl_config = { } @every(minutes=24 * 60) def on_start(self): self.crawl('__START_URL__', callback=self.index_page) @config(age=10 * 24 * 60 * 60) def index_page(self, response): for each in response.doc('a[href^="http"]').items(): self.crawl(each.attr.href, callback=self.detail_page) @config(priority=2) def detail_page(self, response): return { "url": response.url, "title": response.doc('title').text(), }
crawl_config:爬虫的全局参数设置,例如请求头和cookies可以在这里设置(传入关键字及对应的参数即可)
on_start(self):爬虫开始爬取的入口
crawl:和requests有相同的功能 ,可以支持 get(默认) 和 post,常用的参数有
data 是想要提交数据
callback 可以在执行完 crawl后调用回调函数
method 是指定 访问方法
files 上传文件,{‘key’: (‘file.name’: ‘content’)}
headers 请求头,类型dict
cookies 请求的 Cookies 类型 dict
timeout 请求内容里最大等待秒数.默认值:120
connect_timeout : 指定请求时链接超时时间,单位秒,默认值:20
proxy : 可以设置代理服务器,暂时只支持http代理
没有看懂代码的小伙伴们也不要气馁,等过一段时间基础知识学明白后,相信编写pyspider就不会有什么问题了。结尾还有一些关于pyspider参数的介绍,小伙伴们也可以了解一下。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试