
每日新闻(爬取新闻)是一款python爬虫之抓取网页新闻标题与链接的工具,每天上班想看看新闻,于是Python打包了一个可以一键点击查看新闻的exe,现在目的就是爬取有关这个关键词的网页文章,如题目、媒体、日期、内容、url。

利用python写爬虫的人越来越多,这也表明了用python写爬虫相比其它语言用起来更方便一些。很多新闻网站都没有反爬虫的策略,所以爬取新闻网站的数据就更加方便。
1 新闻源列表
本文要实现的异步爬虫是一个定向抓取新闻网站的爬虫,所以就需要管理一个定向源列表,这个源列表记录了很多我们想要抓取的新闻网站的url,这些url指向的网页叫做hub网页,它们有如下特点:
它们是网站首页、频道首页、最新列表等等;
它们包含非常多的新闻页面的链接;
它们经常被网站更新,以包含最新的新闻链接;
它们不是包含新闻内容的新闻页面;
Hub网页就是爬虫抓取的起点,爬虫从中提取新闻页面的链接再进行抓取。Hub网址可以保存在MySQL数据库中,运维可以随时添加、删除这个列表;爬虫定时读取这个列表来更新定向抓取的任务。这就需要爬虫中有一个循环来定时读取hub网址。
2 网址池
异步爬虫的所有流程不能单单用一个循环来完成,它是多个循环(至少两个)相互作用共同完成的。它们相互作用的桥梁就是“网址池”(用asyncio.Queue来实现)。
这个网址池就是我们比较熟悉的“生产者-消费者”模式。
一方面,hub网址隔段时间就要进入网址池,爬虫从网页提取到的新闻链接也有进入到网址池,这是生产网址的过程;
另一方面,爬虫要从网址池中取出网址进行下载,这个过程是消费过程;
两个过程相互配合,就有url不断的进进出出网址池。
3 数据库
这里面用到了两个数据库:MySQL和Leveldb。前者用于保存hub网址、下载的网页;后者用于存储所有url的状态(是否抓取成功)。
从网页提取到的很多链接可能已经被抓取过了,就不必再进行抓取,所以他们在进入网址池前就要被检查一下,通过leveldb可以快速查看其状态。
3. 异步爬虫的实现细节
前面的爬虫流程中提到两个循环:
循环一:定时更新hub网站列表
async defloop_get_urls(self,):print('loop_get_urls() start')while 1:
await self.get_urls()#从MySQL读取hub列表并将hub url放入queue
await asyncio.sleep(50)
循环二: 抓取网页的循环
async defloop_crawl(self,):print('loop_crawl() start')
last_rating_time=time.time()
asyncio.ensure_future(self.loop_get_urls())
counter=0while 1:
item=await self.queue.get()
url, ishub=item
self._workers+= 1counter+= 1asyncio.ensure_future(self.process(url, ishub))
span= time.time() -last_rating_timeif span > 3:
rate= counter /spanprint('\tloop_crawl2() rate:%s, counter: %s, workers: %s' % (round(rate, 2), counter, self._workers))
last_rating_time=time.time()
counter=0if self._workers >self.workers_max:print('====== got workers_max, sleep 3 sec to next worker =====')
await asyncio.sleep(3)
已更新排版好的exe
开发者其他应用
网易云外链提取器
浏览辅助
420KB
V1.0绿色版
[箫启灵]批量转链工具(自动识别单品,加密口令,京东链接)
浏览辅助
12.1M
V8.2.4吾爱版
幻听网在线试听小工具
浏览辅助
615KB
V1.0 2026官方中文版
看丽人全媒体资源站点
浏览辅助
28.4M
v0.1.28 2026官方中文版
12306分流抢票机(2019国庆抢票神器)
浏览辅助
3.6M
v1.13.54 最新版
BrupSuite Pro抓包工具集成平台
浏览辅助
26.1M
v1.7.37 2026官方中文版
腾讯新浪百度短链接生成工具
浏览辅助
397KB
v1.0.0 PC版
TidyTabs Pro窗口合并工具
浏览辅助
10.4M
v1.10.1 2026官方中文版
NimoTab(chrome标签栏整理)
浏览辅助
291KB
v1.4.0 最新版
搜狗推广管家竞价管理
浏览辅助
8.0M
v7.3 最新免费版
支持( 0 ) 盖楼(回复)