首页 > 编程语言 >使用python爬取百度热搜

使用python爬取百度热搜

时间:2024-11-12 16:18:23浏览次数:3  
标签:xpath python text 爬取 获取 df div requests 百度

文章目录


前言

本文介绍使用request获取百度热搜的简单功能


一、requests是什么?

Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。requests 模块比 urllib 模块更简洁。

二、使用步骤

1.引入库

使用 requests 发送 HTTP 请求需要先导入 requests 模块,同时为了解析及保存数据,我们也引入scrapy的Selector,pandas,sqlalchemy的create_engine :

import requests
from scrapy import Selector
import pandas as pd
from sqlalchemy import create_engine
from datetime import datetime

2.获取页面数据

调用requests的get方法,传入指定的url地址,可获取相应的网页数据,对于有反爬设置的网站需要设置cookies及header,通常需要添加user-agent信息,模拟浏览器访问:

# 对于有反爬设置的网站需要设置cookies及header
cookies = {}
headers = {}

# 使用requests 读取网页
response = requests.get('https://top.baidu.com/board?tab=realtime', cookies=cookies, headers=headers)
html = response.text

3.使用xpath解析页面,获取词条列表信息

需要分析百度热搜页面,找到对应的页面元素路径,解析并获取指定的数据信息:

# 使用Selector解析页面内容
selector = Selector(text=html)

# 获取热搜列表
list = selector.xpath('//*[@id="sanRoot"]/main/div[2]/div/div[2]/div')

4.获取指定元素信息,添加到dataframe中

获取对应的热词排序,标题,内容,词频及生成当前时间,并添加到数据集中:

# 声明 DataFrame
df = pd.DataFrame(columns=['index', 'title', 'content', 'count', 'dtime'])
lst_hot_word = []
for item in list:
    # index
    index = item.xpath('./a/div[1]/text()').extract()[0]
    # title
    title = item.xpath('./div[2]/a/div[1]/text()').extract()[0]
    # content
    content = item.xpath('./div[2]/div[1]/text()').extract()[0]
    # count
    count = item.xpath('./div[1]/div[2]/text()').extract()[0]
    # 获取当前时间
    now = datetime.now()
    df.loc[len(df)] = [index, title, content, count, now]
print(df)

5.保存数据到指定的文件或数据库

根据需要将抓取的数据保存到数据库:

# 保存到指定文件
# df.to_csv("./test.csv")

# 创建数据库引擎,根据需要配置自己的数据库信息
engine = create_engine('mysql+pymysql://root:test@localhost:3306/demo')

# 将DataFrame保存到数据库
df.to_sql('hot_word', con=engine, index=False, if_exists='append')

总结

通过以上python代码,即可获取百度热搜词条信息,可以定时运行相应的脚本,定时抓取相应的热搜数据,后续可以进行分析应用

标签:xpath,python,text,爬取,获取,df,div,requests,百度
From: https://blog.csdn.net/alex190824/article/details/143640533

相关文章

  • Python那些事儿 - 注释与数据类型
    第二回初出茅庐前言Python的横空出世,很快吸引了大批的追捧者,大家都加入了对它的了解学习和使用当中。有人编制教学书籍,有人开培训课堂,如今市面上的书籍和培训机构数不胜数。但是对于学习者来说,大家学习Python的开始都是一样的,那就是:#1、代码区输入print('hello,world')#......
  • YOLOV8应用|排球垫球计数|附带全部数据集与源码(见文末百度云盘链接)
    项目简介:该项目旨在利用YOLOv8算法实现排球垫球动作的自动识别与计数。YOLOv8作为计算机视觉领域的先进目标检测算法,具备高精度和实时性的特点,非常适合用于体育训练和测试中的自动化计数。项目将排球垫球视频作为输入,通过YOLOv8算法检测视频中的排球及垫球动作,自动记录垫球次......
  • 用 Python 开发卷积神经网络全解析
    一、准备工作安装必要的库在Python中开发卷积神经网络,我们通常会用到几个非常重要的库,比如TensorFlow和Keras。TensorFlow是一个功能强大的开源机器学习框架,而Keras是构建在TensorFlow之上的高级神经网络API,它让模型的搭建和训练变得更加简洁直观。可以使用以......
  • 基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数
    摘要:番茄成熟度检测在农业生产及质量控制中起着至关重要的作用,不仅能帮助农民及时采摘成熟的番茄,还为自动化农业监测提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的番茄成熟度检测模型,该模型使用了大量图片进行训练,能够准确识别不同成熟度阶段的......
  • python3 处理文件大小,自动选择合适单位
    内容来源于chatgptdefformat_size(bytes):"""将字节大小转换为适当的单位(KB,MB,GB等),支持负数。:parambytes:原始字节大小,可以为负数:return:字符串,格式化后的大小和单位"""#定义单位和阈值units=["B","KB","MB",&......
  • 调用百度的接口,实现多种语言的翻译
    先把工具类下载下来,直接拖进去:/***Base64工具类*/publicclassBase64Util{privatestaticfinalcharlast2byte=(char)Integer.parseInt("00000011",2);privatestaticfinalcharlast4byte=(char)Integer.parseInt("00001111",2);p......
  • 毕业设计之python主观题自动阅卷系统(python完整源码+说明文档+演示视频)
    1项目介绍通过我们现阶段的有的大数据,人工智能计算可以将主观题做成自动阅卷的系统。大大提高了老师的工作效率和学生的考试容易程度。同时呢,不仅是对于客观题可以进行。技术方面的有效提高。对于主观题呢,我们也是采用当下的python技术以及流行的MYSQL数据库。2、项目技......
  • python中copy模块的使用,深拷贝和浅拷贝
    文章目录一、copy模块的介绍1、copy模块二、copy模块的使用拓展说明:1、id()函数的使用2、is和==的区别python的轮子太多啦,下面介绍一下这个小模块的使用一、copy模块的介绍1、copy模块copy模块用于对象的拷贝操作。copy模块非常简单,只有两个api。分别是copy.......
  • 使用 Python 实现高效网页爬虫——从获取链接到数据保存
    前言在这个时代,网络爬虫已成为数据分析与信息收集不可或缺的技术之一。本文将通过一个具体的Python项目来介绍如何构建一个简单的网络爬虫,它能够自动抓取指定网站的文章链接、标题、正文内容以及图片链接,并将这些信息保存为CSV文件。目标网站一、准备工作在开始编写爬......
  • 将本地安装的Python库集成到Docker镜像
    1.确定本地库的位置和格式首先,你需要明确本地库的位置和格式。如果是Python库,它可能是以.whl(wheel格式)、.tar.gz(压缩包格式)或者是一个包含源代码的目录形式存在。2.使用COPY或ADD指令(对于简单的本地库文件)COPY指令:如果本地库是一个简单的文件(如.whl或.tar.gz),可......