WechatSogou icon indicating copy to clipboard operation
WechatSogou copied to clipboard

希望用框架再次实现!

Open crisfan opened this issue 9 years ago • 4 comments

1.希望博主可以用scrapy实现,希望可以和博主一起完成。 2.主要用了博主抓取首页文章链接的API(抓取文章url的xpath好像已经改了,博主更新下吧!) 3.其实博主的_get方法可以用多线程实现,发现下载6000千个文章的速度真的是太慢了。。。

crisfan avatar Dec 14 '16 13:12 crisfan

在改。。。挺简单的。。

chyroc avatar Dec 14 '16 16:12 chyroc

具体是哪个情景下,会有需求呢

chyroc avatar Dec 14 '16 17:12 chyroc

答:用框架最大的好处在我看来无外乎在于后续需要修改代码的话,我们能很快知道在框架的那个模块里去修改(毕竟里面已经变相规定每个模块干什么功能),同时框架很多功能我们也不用去实现了,比如多线线程,设置下载速度(配置参数就OK) 其实我现在想在框架的基础上实现每5个小时定时抓取各个分类下最新的文章(判重好像只能通过标题是否重复了吧!) import pymongo import readability import re from lxml import etree

client = pymongo.MongoClient() db = client.sougou

articles_single = [] page = 0 article_urls = wechats.get_recent_article_url_by_index_all()

for url in article_urls: html_text = wechats.get_gzh_message(url=url) try: article_content = readability.Readability(html_text, url).content except RuntimeError as e: article_content = None article_title = re.search('

(.*?)', html_text).group(0) html_string = etree.HTML(html_text) try: article_date = html_string.xpath('//em[@id="post-date"]/text()')[0] except IndexError as e: article_date = None db.wechats.insert({'title': article_title, 'content': article_content, 'date': article_date})

但是发现好像就是上面简单的程序放在框架里很蛋疼,无法实现。

crisfan avatar Dec 15 '16 07:12 crisfan