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知乎热门话题爬取的主要内容,如果未能解决你的问题,请参考以下文章

方法教程 | Python 网络爬虫实战:采集知乎一个话题下的全部问题

Python爬取《流浪地球》豆瓣影评与数据分析

爬取知乎话题async使用协程

python知乎内容抓取(redis存储)

python爬取知乎首页问题

Python爬取知乎与我所理解的爬虫与反爬虫