怎样用Python 写一个爬虫框架( 五 )


实现更多优雅地功能实现更多的插件,让生态丰富起来修BUG项目地址点击阅读原文或者在github搜索ruia,如果你有兴趣,请参与进来吧!
如果觉得写得不错,来个star呗~
howie6879/ruia相关博文:
如何实现一个Python爬虫框架 - howie6879

■网友
一个爬虫框架要实现的部分:一个爬虫框架需要具备哪些功能? - 。首先要实现一套调度程序要使得以下的流程能运作url html resultSTART! -----\u0026gt; http request -----------\u0026gt; html parse -------\u0026gt; database presist | url | -----------------------下面是一个同步调度程序(假设用户已经实现了request,parse,store)
def consume_one_url(self, url): response = fetch(url) items = parse(response) for item in items: presist(item)while urls: url = urls.pop(0) consume_one_url(url)其次再去实现辅助http请求,html解析,数据库存储的扩展工具。最后之一,如果你只想实现一个调度,推荐一个轻量级爬虫框架gaoxinge/spidery,这个框架只实现了多线程调度程序,而http请求,html解析则要使用库:urllib,requests,re,lxml,beautifulsoup等。最后之二,如果你想实现一个一站式的爬虫框架,推荐scrapy/scrapy和binux/pyspider,两者均支持异步请求。
■网友
两种方式嘛。
一种是, 直接用现成的scrapy. 仿一下, 因为它现在发展的还好了。不太复杂的需求基本上都可以用。
二就是自己写,那就是两部分, 依据URL取网页内容, 另外就是分析网页的DOM结构。
URL取网页, httplib 库是不可少的。 另外就是多线程也是不可少的。
分析DOM, 这么复杂的问题, 也要用 xmllib或者直接自己分析自己想要的内容吧。
*如果要爬的内容是基于JS生成的, 那就调用webkit吧。
大概的技术就是这个样子。
别的架构啊,什么的,完全看需要, 用简单几个线程,还是用复杂的分布式,
【怎样用Python 写一个爬虫框架】 看你的目标吧。


推荐阅读