Python知乎热门话题爬取
Posted 雨轩恋i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python知乎热门话题爬取相关的知识,希望对你有一定的参考价值。
本例子是参考崔老师的Python3网络爬虫开发实战写的
看网页界面:
热门话题都在 explore-feed feed-item的div里面
源码如下:
import requests from pyquery import PyQuery as pq url=\'https://www.zhihu.com/explore\' #今日最热 #url=\'https://www.zhihu.com/explore#monthly-hot\' #本月最热 headers={ \'User-Agent\':"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5", } html=requests.get(url,headers=headers).text doc=pq(html) #print(doc) items=doc(\'.explore-feed.feed-item\').items() for item in items: question=item.find(\'h2\').text() #获取问题 print(question) author=item.find(\'.author-link\').text() #获取作者 print(author) answer=pq(item.find(\'.content\').html()).text() #获取答案(老师写的没看懂,可能需要jquery知识) print(answer) print(\'====\'*10) answer1=item.find(\'.zh-summary\').text() #自己写的获取答案。。。 print(answer1) #第一种写入方法 file=open(\'知乎.txt\',\'a\',encoding=\'utf-8\') file.write(\'\\n\'.join([question,author,answer])) file.write(\'\\n\'+\'****\'*50+\'\\n\') file.close() #第二种写入方法 不需要写关闭方法 with open(\'知乎.txt\',\'a\',encoding=\'utf-8\') as fp: fp.write(\'\\n\'.join([question, author, answer])) fp.write(\'\\n\' + \'****\' * 50 + \'\\n\')
运行结果如下:
不过比较奇怪的地方是 url为今日最热和本月最热 所爬取的结果一模一样。。而且都只能爬下五个div里面的东西,可能是因为知乎是动态界面。需要用到selenium吧
还有就是
answer=pq(item.find(\'.content\').html()).text()
#获取答案(老师写的没看懂,可能需要jquery知识)
这行代码没有看懂。。。。
还得学习jQuery
以上是关于Python知乎热门话题爬取的主要内容,如果未能解决你的问题,请参考以下文章