升级完善第一个爬虫GCZW3,使能够批量爬取多篇文章热评

本文介绍了如何升级一个Python爬虫,使其能从观察者网首页获取所有文章链接并批量爬取每篇文章的热门评论。主要解决了两个难点:一是如何从h4标签下的a子标签中提取网址后半段;二是如何构造列表来存储多个文章链接,以便于后续的批量爬取。
摘要由CSDN通过智能技术生成

前天写了观察者网的爬虫,只能根据某个网页链接爬取,不能一次性大量爬取多篇文章的热门评论。

于是,今天想把它升级一下,让它可以从首页获取首页展示的所有文章的链接,并分别进行爬取。

于是写了mainPage2links() 函数,向它传入首页链接,可以得到首页展示文章的链接。

然后就可以批量爬取了。

当然这其中,也遇到了问题。首页解析后,在h4标签下的子标签a中可以找到文章的网址后半段,因此思路是先取出a标签中的href网址后半段,然后通过字符串的合并,得到完整的文章链接。

现在h4标签下的子标签a中是这样的:<h4 class="module-title"><a href="/industry-science/2018_03_13_449958.shtml" target="_blank">马斯克:准备送人上火星 但会丧命</a></h4>

首先想要得到/industry-science/2018_03_13_449958.shtml,在这里遇到了第1个难点,就是先要得到h4标签,然后通过bs4中父子标签的关系,得到a标签,所以网址后半段就可以通过下面的语句得到。

links = soup.find_all('h4')
print(type(links))
finalArticleLinksList =[]
for k in links:
    #print(k['href'])
    allarticleLinks = k.a['href']
    print(allarticleLinks)#后代标签

然后,把通过字符串合并得到文章的最终网址链接。

finalArticleLinks = ('http://www.guancha.cn' + allarticleLinks)

再然后,遇到了第2个难点,上面语句得到的allarticleLinks是string类型,本来以为是list类型,结果操作时总是出错。后来查阅了如何构造列表的方法,成功创建了列表,在for循环中,对变量finalArticleLinks进行append的方式构造了列表finalArticleLinksList。


这样就可以通过遍历finalArticleLinksList中的每个网址,批量进行文章的人们评论爬虫了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值