使用python获取百度一下,热搜TOP数据详情

news/2024/11/17 8:54:46/

一、查找对应链接

# 警告:以下代码仅供学习和交流使用,严禁用于任何违法活动。  
# 本代码旨在帮助理解和学习编程概念,不得用于侵犯他人权益或违反法律法规的行为。 

1、打开百度页面 百度一下,你就知道
2、点击F12 或 右键鼠标选择下方的检查 进入 调试模式
3、选择Network 选项,点击显示全部信息 all 完成第二步后,点击左上角的刷新或快捷键 Ctrl+R 进行刷新,就会出现第三个点的信息

我们可以看到显示的信息,正是我们所需要的,证明这就是我们需要的目标链接

4、点回 Headers 看一下资源链接和请求方式,方便后续操作

可以看到,请求链接为:百度一下,你就知道 请求方式为:GET 请求状态码为 200表示成功

回到我们的IDE编辑器中,开始动手敲代码

二、编辑代码

1、导入第三方库 requests 这是一个用于请求网页链接获取对应信息的第三方库,导入前需要在终端中进行安装
python">pip install requests

2、向对应链接发送请求,并查看状态码,若是200 表示请求成功

这时的内容还是比较混乱的,我们需要对信息做一步清洗,提取所需要的一部分内容

3、目标url
python">url = "https://www.baidu.com/"
4、构造请求头,为防止服务器识别到异常请求而不返回数据,我们需要模拟浏览器发送请求
python">#构建请求头      模拟浏览器发送请求   否者会被检测到      返回信息就为空
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
}
5、使用正则表达式,提取热搜的内容部分 正则表达式返回的数据类型为列表
python">#清洗源码  提取关键信息
re_title = re.findall('"card_title": "(.*?)"',response)       #获取热搜标题
re_linkurl = re.findall('"linkurl": "(.*?)"',response)        #热搜对应链接
re_index = re.findall('"index": "(.*?)"',response)            #热搜排名
6、打印后,发现百度热搜的链接做了百分比加密,无法直接使用,需要进一步解密

python">from urllib.parse import unquote_plus               #导入解码库     默认链接采用了百分比编码,无法直接使用,需要进行解码
​
# 包含URL编码的字符串
encoded_url_list = re_linkurl
​
list_url = []                #创建一个列表用户存放解码后的链接
for i in encoded_url_list:      #遍历url列表decoded_url = unquote_plus(i)       # 使用unquote_plus函数解码URL       print(decoded_url)                  # 打印解码后的URLlist_url.append(decoded_url)        #将解码后的链接放入列表中
print(len(list_url))                     #查看列表长度 信息是否完全获取

三、完整代码

python">'''
# 警告:以下代码仅供学习和交流使用,严禁用于任何违法活动。  
# 本代码旨在帮助理解和学习编程概念,不得用于侵犯他人权益或违反法律法规的行为。 
'''
import requests       #导入第三方请求库
import re
#目标url
url = "https://www.baidu.com/"
​
​
#构建请求头      模拟浏览器发送请求   否者会被检测到      返回信息就为空
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
}
#发送请求  获取网页源码
response = requests.get(url,headers=headers).text
​
#清洗源码  提取关键信息
re_title = re.findall('"card_title": "(.*?)"',response)       #获取热搜标题
re_linkurl = re.findall('"linkurl": "(.*?)"',response)        #热搜对应链接
re_index = re.findall('"index": "(.*?)"',response)            #热搜排名
​
print(re_index,re_title,re_linkurl)
​
from urllib.parse import unquote_plus               #导入解码库     默认链接采用了百分比编码,无法直接使用,需要进行解码
​
# 包含URL编码的字符串
encoded_url_list = re_linkurl
list_url = []                #创建一个列表用户存放解码后的链接
for i in encoded_url_list:      #遍历url列表print(i)# 使用unquote_plus函数解码URLdecoded_url = unquote_plus(i)              # 打印解码后的URLprint(decoded_url)list_url.append(decoded_url)        #将解码后的链接放入列表中
print(len(list_url))                     #查看列表长度 信息是否完全获取
# 警告:以下代码仅供学习和交流使用,严禁用于任何违法活动。  
# 本代码旨在帮助理解和学习编程概念,不得用于侵犯他人权益或违反法律法规的行为。 

http://www.ppmy.cn/news/1531624.html

相关文章

vue3中使用iframe不成功的问题

再做大屏的时候&#xff0c;引用了一个html的页面&#xff0c;但是vue3编码&#xff0c;所以需要用到iframe&#xff0c;但是一直报错&#xff0c;故将解决方法做一个备份&#xff1a; <template><div class"screen-bg"><iframe src"/static/in…

Linux集群部署RabbitMQ

目录 一、准备三台虚拟机&#xff0c;配置相同 1、所有主机都需要hosts文件解析 2、所有主机安装erLang和rabbitmq 3、修改配置文件 4、导入rabbitmq 的管理界面 5、查看节点状态 6、设置erlang运行节点 7、rabitmq2和rabbitmq3重启服务 8、查看各个节点状态 二、添加…

ProgrammerAI—AI辅助编程学习指南

前言 随着AIGC&#xff08;AI生成内容&#xff09;技术的快速发展&#xff0c;诸如ChatGPT、MidJourney和Claude等大语言模型相继涌现&#xff0c;AI辅助编程工具正逐步改变程序员的工作方式。这些工具不仅可以加速代码编写、调试和优化过程&#xff0c;还能帮助解决复杂的编程…

教授(优青)团队一站式指导:专业实验设计、数据分析、SCI论文辅助。基因表达分析、转录因子、组蛋白、染色质、DNA等高通量检测及基因功能分析

可高通量检测组蛋白不同修饰在基因组上的位点; 可用于模式物种和非模式物种的研究&#xff0c;无需特异性抗体; 完整的DAP-seq解决方案。 DAP-seq可高通量检测转录因子或DNA结合蛋白在基因组上的结合位点; 可用于模式物种和非模式物种的研究&#xff0c;无需特异性抗体; 完整的…

Acwing 约数

1.试除法 思路分析&#xff1a;利用试除法求一个数的所有约数&#xff0c;思路和判断和求质数的判定类似 一个数N有一个约数d&#xff0c;那么N/d也必然是其约数 约数都是成对出现的&#xff0c;只需要枚举1到 n \sqrt{n} n ​即可&#xff0c;注意不要让一个约数加入两次! …

Go版数据结构 -【1.1 数据结构的分类与基本概念】

1.1 数据结构的分类与基本概念 本节我们将对数据结构的基本概念以及分类进行讲解&#xff0c;数据结构有很多种&#xff0c;但是主要也就是集中于几种类型&#xff0c;本节我们将进行逐一讲解。 什么是数据结构&#xff1f; 按照标准说法&#xff0c;数据结构指的是在计算机…

4 html5 web components原生组件详细教程

web components 前面我们已经介绍过,这一期我们就来讲一讲具体用法和这其中的关键只是点: 1 基本使用 如果我们想实现一个封装的原生组件,那就离不开使用js去封装,这里主要就是基于HTMLElement这个类,去创建创建一个子类,然后使用customElements.define去页面中注册这个…

xlsx库插件读取excel文件

input读取xlsx文件内容 效果代码 前端用input读取 .xlsx文件的内容 xlsx库参考连接 项目中我用的ant-design-vue&#xff0c;不过用input一样的大同小异 注意区分xlsx库和node-xlsx库的使用环境 效果 代码 <!--* Descripttion: * Author: 苍狼一啸八荒惊* Date: 2024-08-…