python爬取知乎热榜内容
程序员文章站
2022-07-08 15:54:39
文章目录一、前期准备1.获取headers2.查看网页源代码二、python代码实现1.解析网页2.获取标签3.完整代码三、最终结果一、前期准备1.获取headers登录知乎官网知乎,点击热榜,按F12打开开发者工具。点击Network,按ctrl+r重新加载,点击hot在Headers找到cookie和user-agent,把他们复制下来。2.查看网页源代码点击Elements,点击左边的箭头指向第一个热榜话题。再分别看里面的元素标签(序号、标题、话题ID等)这是序号:这是标...
一、前期准备
1.获取headers
登录知乎官网知乎,点击热榜,按F12打开开发者工具。
点击Network,按ctrl+r重新加载,点击hot
在Headers找到cookie和user-agent,把他们复制下来。
2.查看网页源代码
点击Elements,点击左边的箭头指向第一个热榜话题。
再分别看里面的元素标签(序号、标题、话题ID等)
这是序号:
这是标题:
这是话题链接地址和话题ID:
二、python代码实现
1.解析网页
response = requests.get(url, headers=headers)
text = response.text
html = etree.HTML(text)#构造一个XPath解析对象并对HTML文本进行自动修正。
2.获取标签
number = question.xpath("./div[@class='HotItem-index']//text()")[0].strip()#问题Index
title = question.xpath(".//h2[@class='HotItem-title']/text()")[0].strip()#问题标题
href = question.xpath("./div[@class='HotItem-content']/a/@href")[0].strip()#问题链接
question_num = href.split('/')[-1]#取切割的最后一块,即问题ID
3.完整代码
import requests
from lxml import etree
headers={
'user-agent': '',
'cookie':'',
}
url = 'https://www.zhihu.com/hot'
def get_question_num(url,headers):
response = requests.get(url, headers=headers)
text = response.text
html = etree.HTML(text)#构造一个XPath解析对象并对HTML文本进行自动修正。
reslut = html.xpath("//section[@class='HotItem']")#选取所有section子元素,不管位置
question_list = []#问题列表(问题ID,问题标题)
for question in reslut[0:10]:#获取热榜前十
number = question.xpath("./div[@class='HotItem-index']//text()")[0].strip()#问题Index
title = question.xpath(".//h2[@class='HotItem-title']/text()")[0].strip()#问题标题
href = question.xpath("./div[@class='HotItem-content']/a/@href")[0].strip()#问题链接
question_num = href.split('/')[-1]#取切割的最后一块,即问题ID
question_list.append([question_num, title])
print(number,'\n',title,'\n',href)
return question_list
get_question_num(url,headers)
cookie和user-agent用自己的吧。
三、最终结果
本文地址:https://blog.csdn.net/qq_44809707/article/details/110881958
上一篇: centos7离线安装airflow1.10.10(真正离线)
下一篇: py