您的位置:首页 > 编程语言 > Python开发

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

2018-03-13 15:47 225 查看
前天写了观察者网的爬虫,只能根据某个网页链接爬取,不能一次性大量爬取多篇文章的热门评论。
于是,今天想把它升级一下,让它可以从首页获取首页展示的所有文章的链接,并分别进行爬取。
于是写了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中的每个网址,批量进行文章的人们评论爬虫了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python爬虫
相关文章推荐