【知乎热榜爬虫】python爬取知乎热榜问题及答案

本文介绍了如何使用Python爬虫技术抓取知乎热榜问题及其高赞答案。通过requests库请求网页,XPath解析数据,结合multiprocessing多进程加速爬取,并利用pymysql将数据存储到MySQL数据库。详细步骤包括设置请求头、解析页面、跟踪AJAX请求以及判断答案是否保存。最后,展示了爬取耗时和数据库存储结果。
摘要由CSDN通过智能技术生成

所用库

  • requests

  • xpath解析库

  • multiprocessing多进程

  • pymysql数据库操作库

实战背景

主要是爬取知乎热榜的问题及点赞数比较高的答案,通过requests请求库进行爬取,xpath进行解析,并将结果存储至mysql数据库中

爬取的url为:https://www.zhihu.com/hot

源码保存在我的github上:知乎热榜问题及答案数据获取

文章首发于个人网站:大圣的专属空间

代码实现

首先获取问题的标题以及其下属的答案的url地址,代码如下:

import requests
from lxml import etree
import time
import multiprocessing
import pymysql

headers = {
    
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    '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)
    reslut = html.xpath("//section[@class='HotItem']")
    # 获取问题的ID
    question_list = []
    for question in reslut:
        number = question.xpath(".//div[@class='HotItem-index']//text()")[0].strip()
        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('/')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值