爬取百度热搜榜

本教程将介绍如何使用Python编写爬虫代码来获取百度热搜榜的实时数据。我们将使用requests模块发送HTTP请求,并使用BeautifulSoup模块解析HTML内容。

步骤 1: 导入所需模块和库

首先,我们需要导入requests模块和BeautifulSoup模块。这些模块将帮助我们发送HTTP请求和解析HTML内容。

import requests  # 导入requests模块,用于发送HTTP请求
from bs4 import BeautifulSoup  # 导入BeautifulSoup模块,用于解析HTML

步骤 2: 设置目标网页URL和请求头

在这一步中,我们将定义要爬取的目标网页的URL,并设置请求头以模拟浏览器访问。

url = "https://top.baidu.com/board?tab=realtime"  # 目标网页的URL

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}  # 请求头,用于伪装成浏览器进行访问

步骤 3: 发送HTTP请求并获取响应内容

接下来,我们将使用requests模块发送GET请求,并获取响应对象。

res = requests.get(url, headers=headers)  # 发送GET请求,并获取响应对象
html = res.text  # 将响应内容转换为字符串形式

步骤 4: 解析HTML内容

我们使用BeautifulSoup模块来解析HTML内容,并使用CSS选择器获取热搜词和热搜指数的元素列表。

soup = BeautifulSoup(html, features="html.parser")  # 使用BeautifulSoup解析网页内容,指定解析器为html.parser
kw = soup.select("div .c-single-text-ellipsis")  # 使用CSS选择器获取热搜词的元素列表
count = soup.select("div .hot-index_1Bl1a")  # 使用CSS选择器获取热搜指数的元素列表

步骤 5: 提取热搜词和热搜指数

我们将创建一个空列表,用于存储热搜词和热搜指数的组合。然后,遍历元素列表,提取热搜词和热搜指数,并将其组合为一个字符串。

context = []  # 创建一个空列表,用于存储热搜词和热搜指数的组合
for i in range(len(kw)):
    k = kw[i].text.strip()  # 获取热搜词并移除左右空格
    v = count[i].text.strip()  # 获取热搜指数并移除左右空格
    context.append(f"{k} - {v}".replace('\n', ''))  # 将热搜词和热搜指数组合为一个字符串,并将其中的换行符替换为空格

步骤 6: 打印热搜词和热搜指数

最后,我们将遍历存储热搜词和热搜指数的列表,并打印每个热搜词和热搜指数的组合。

for j in context:
    print(j)  # 打印每个热搜词和热搜指数的组合

完整代码

import requests  # 导入requests模块,用于发送HTTP请求
from bs4 import BeautifulSoup  # 导入BeautifulSoup模块,用于解析HTML

url = "https://top.baidu.com/board?tab=realtime"  # 目标网页的URL

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}  # 请求头,用于伪装成浏览器进行访问

res = requests.get(url, headers=headers)  # 发送GET请求,并获取响应对象
html = res.text  # 将响应内容转换为字符串形式

soup = BeautifulSoup(html, features="html.parser")  # 使用BeautifulSoup解析网页内容,指定解析器为html.parser
kw = soup.select("div .c-single-text-ellipsis")  # 使用CSS选择器获取热搜词的元素列表
count = soup.select("div .hot-index_1Bl1a")  # 使用CSS选择器获取热搜指数的元素列表

context = []  # 创建一个空列表,用于存储热搜词和热搜指数的组合
for i in range(len(kw)):
    k = kw[i].text.strip()  # 获取热搜词并移除左右空格
    v = count[i].text.strip()  # 获取热搜指数并移除左右空格
    context.append(f"{k} - {v}".replace('\n', ''))  # 将热搜词和热搜指数组合为一个字符串,并将其中的换行符替换为空格

for j in context:
    print(j)  # 打印每个热搜词和热搜指数的组合

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李乾星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值