爬虫实战-Python爬取百度当天热搜内容
import requests
from bs4 import BeautifulSoup
import re
import datetime
def get_baidu_hot_search(date):
# 设置URL模板,其中{date}将被实际日期替换
url_template = "https://top.baidu.com/buzz?b=1&c=31&class=3&p=1&d={date}"
url = url_template.format(date=date)
# 发送HTTP请求
response = requests.get(url)
response.raise_for_status()
response.encoding = 'UTF-8'
# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
# 使用正则表达式匹配关键词
pattern = re.compile(r'<a href="/s?wd=(.+?)&.+?>(.+?)</a>')
matches = pattern.findall(str(soup))
# 输出关键词
hot_searches = []
for keyword, score in matches:
hot_searches.append({
'keyword': keyword,
'score': score
})
return hot_searches
# 获取今天的日期字符串
today = datetime.date.today().strftime('%Y%m%d')
# 调用函数并输出结果
hot_searches = get_baidu_hot_search(today)
for search in hot_searches:
print(search)
这段代码使用了requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML,使用正则表达式来提取关键词和热度分数。代码首先定义了一个函数get_baidu_hot_search
,该函数接受日期作为参数,并返回该日期的百度热搜关键词列表。然后代码获取了今天的日期字符串,并调用函数输出结果。
评论已关闭