使用 Python 语言,运用正则表达式编写代码 任务:爬取百度热搜榜页面中的热搜关键词和热力值 要求: 1、爬取内容不包括置顶热搜信息 2、作业提交内容包括热搜页面,完整代码,执行结果等信息截屏。
时间: 2024-12-16 22:19:41 浏览: 14
Python获取lunwen信息,包含数据爬取、数据分析、数据可视化代码
5星 · 资源好评率100%
使用Python和正则表达式爬取百度热搜榜页面的基本步骤如下:
首先,你需要安装 `requests` 和 `BeautifulSoup` 这两个库,分别用于发送HTTP请求和解析HTML文档:
```bash
pip install requests beautifulsoup4
```
然后,你可以使用以下代码示例来获取网页内容并提取关键词和热力值。这里假设网页结构包含在HTML的某个class名下,例如`.hot-item`。请注意,实际网站结构可能会有所不同,因此需要根据实际HTML调整正则表达式。
```python
import requests
from bs4 import BeautifulSoup
# 百度热搜首页URL
url = "https://top.baidu.com/"
def fetch_hot_keywords(url):
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
# 找到包含热搜关键词的元素,通常会有class属性如".hot-item"
keyword_elements = soup.find_all(class_='hot-item', recursive=False) # 不递归查找防止无限循环
keywords = []
heat_values = []
for item in keyword_elements[1:]: # 置顶信息忽略
try:
# 提取关键词和热度值(假设它们分别在item的第一个和第二个子元素内)
keyword = item.find('span', class_='title').text.strip()
heat_value = int(item.find('em', class_='heat').text.split()[0]) # 假设热力值是以数字形式展示
keywords.append(keyword)
heat_values.append(heat_value)
except (AttributeError, ValueError): # 如果找不到或无法转换为整数,跳过这个元素
pass
return keywords, heat_values
else:
print(f"请求失败,状态码:{response.status_code}")
return [], []
# 调用函数并打印结果
keywords, heat_values = fetch_hot_keywords(url)
print("关键词:", keywords)
print("热力值:", heat_values)
# 为了截图,可以将抓取的内容保存到文件或使用第三方库如PIL或selenium
```
执行此代码后,你会得到爬取到的热搜关键词列表和对应热力值。记得检查实际网页结构以便修改正则表达式匹配部分。完成任务后,你需要提供爬虫运行的屏幕截图,显示热搜页面、代码执行结果以及包含数据的部分。
阅读全文