欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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
python爬取知乎热榜内容
在Headers找到cookie和user-agent,把他们复制下来。
python爬取知乎热榜内容

2.查看网页源代码

点击Elements,点击左边的箭头指向第一个热榜话题。
python爬取知乎热榜内容
再分别看里面的元素标签(序号、标题、话题ID等)
这是序号:
python爬取知乎热榜内容
这是标题:
python爬取知乎热榜内容
这是话题链接地址和话题ID:
python爬取知乎热榜内容

二、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用自己的吧。

三、最终结果

python爬取知乎热榜内容

本文地址:https://blog.csdn.net/qq_44809707/article/details/110881958

相关标签: python 爬虫