Python 爬虫之简单的爬虫(二)

爬取百度热搜榜


文章目录

  • 爬取百度热搜榜
  • 前言
  • 一、展示哪些东西
  • 二、基本流程
  • 三、前期数据获取
    • 1.引入库
    • 2.请求解析获取
  • 四、后期数据处理
    • 1.获取保存
  • 总结


前言

每次打开浏览器,我基本上都会看一下百度热搜榜。这篇我就写一下如何获取百度的热搜榜信息吧。

如果到最后看的云里雾里的,请先看我写的上一篇《Python 爬虫之简单的爬虫(一)》https://blog.csdn.net/weixin_57061292/article/details/135038581


一、展示哪些东西

  1. 其实每个标题背后有很多数据类型,我挑一些有用的东西展示了出来。

在这里插入图片描述

  1. 其中有标记 五角星 的标题含义是看下图:

在这里插入图片描述


二、基本流程

主要是以下几部分(下文基本会按照这个步骤来写):

  • 导入需要的库
  • 要测试的网页
  • 生成代理,请求网页
  • 请求成功,解析网页,找到并保存想要的东西
  • 请求失败,返回相应状态码

三、前期数据获取

1.引入库

代码如下:

# 将这个编码后的链接解码回原始的URL格式
from urllib.parse import unquote# 用于发送 HTTP 请求
from bs4 import BeautifulSoup# 这是一个用于解析 HTML 和 XML 文档
import requests# 用于处理下面获取的数据
import json

记得看注释哦


2.请求解析获取

代码如下:

# 目标网页地址
url = 'https://www.baidu.com/'# 定义请求头的浏览器代理,伪装成浏览器
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) ''AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36','host': 'www.baidu.com'}# 请求网页
response = requests.get(url, headers=headers)
print('status_code:', response.status_code)# 解析 HTML 文档
soup = BeautifulSoup(response.text, "lxml")# 获取相应标签里的内容
textarea = soup.find("textarea", id="hotsearch_data")

代码不多就三操作合一啦。

其它代码还好说,主要是最后一行代码,看下图应该就明白了(获取的也就是这个标签下的内容)。
在这里插入图片描述


四、后期数据处理

1.获取保存

代码如下:

# 进行切片处理无用信息,并用json格式读取数据
data_str = textarea.text.split('>')[-1]  # 作用是把标签去掉,只保留热榜数据
data = json.loads(data_str)# 打开一个文本文档并写入
with open('hotsearch.txt', 'w', encoding='utf-8') as f:# 遍历这些数据for item in data["hotsearch"]:# 获取标题、链接、排名信息card_title = item["card_title"]linkurl = item["linkurl"]index = item["index"]hotTags = item["hotTags"]heat_score = item["heat_score"]# 写入文件if hotTags == '3':    # 表示这个标题当前有《热》的红色角标f.write(f'标题:{card_title} \u2605 \u2605 \u2605 \u2605 \u2605 \n')else:f.write(f'标题:{card_title}\n')f.write(f'链接:{unquote(linkurl)}\n')f.write(f'热度:{heat_score}\n')f.write(f'排名:{index}\n\n')
  • 第一步:进行切片处理,把无用信息删掉,并用json格式读取数据。用json方便后期的数据处理,减少难度。
    在这里插入图片描述
  • 第二步:打开先打开一个文本文档,为了后面一边遍历数据内容一边写入文件。
  • 第三步:就像开头展示的,把那五种数据类型获取到。
  • 第四步:把获取到数据整理一下写入到文件中。
    在这里插入图片描述

总结

写点爬虫小程序来替自己搜一些东西还挺有趣的。以前需要自己手动花老长时间从网上搜,现在程序刷的一下就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/282978.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【复杂网络分析与可视化】——通过CSV文件导入Gephi进行社交网络可视化

目录 一、Gephi介绍 二、导入CSV文件构建网络 三、图片输出 一、Gephi介绍 Gephi具有强大的网络分析功能,可以进行各种网络度量,如度中心性、接近中心性、介数中心性等。它还支持社区检测算法,可以帮助用户发现网络中的群组和社区结构。此…

饥荒Mod 开发(十三):木牌传送

饥荒Mod 开发(十二):一键制作 饥荒Mod 开发(十四):制作屏幕弹窗 一键传送源码 饥荒的地图很大,跑地图太耗费时间和饥饿值,如果大部分时间都在跑图真的是很无聊,所以需要有一个能够传送的功能,不仅可以快速…

IDEA2023 + spring cloud 工程热部署设置方法

基于spring cloud 工程进行热部署 &#xff0c;实现每次修改工程源文件&#xff0c;后台自动启动&#xff0c;方便开发测试工作。具体分为5步骤即可&#xff1a; 1、修改工程的pom文件&#xff0c;增加adding devtools 工具包。 <dependency> <groupId>org.s…

为什么该团队A做的事情,却被其它团队做了

第一种原因&#xff0c;原本方案只需要直接改动系统 service1&#xff0c;但由于团队1并没有解决该问题的动力&#xff0c;其他人不得不绕道去修改系统 service2&#xff0c;service3&#xff0c;service4 来解决该问题。 在一个大型电商系统中&#xff0c;有四个团队负责不同的…

ElasticSearch学习篇8_Lucene之数据存储(Stored Field、DocValue、BKD Tree)

前言 Lucene全文检索主要分为索引、搜索两个过程&#xff0c;对于索引过程就是将文档磁盘存储然后按照指定格式构建索引文件&#xff0c;其中涉及数据存储一些压缩、数据结构设计还是很巧妙的&#xff0c;下面主要记录学习过程中的StoredField、DocValue以及磁盘BKD Tree的一些…

neuq-acm预备队训练week 10 P3386 【模板】二分图最大匹配

题目描述 给定一个二分图&#xff0c;其左部点的个数为 n&#xff0c;右部点的个数为 m&#xff0c;边数为 e&#xff0c;求其最大匹配的边数。 左部点从 1 至 n 编号&#xff0c;右部点从 1至 m 编号。 题目限制 输入格式 输入的第一行是三个整数&#xff0c;分别代表 n&a…

【微服务】Spring Aop原理深入解析

目录 一、前言 二、aop概述 2.1 什么是AOP 2.2 AOP中的一些概念 2.2.1 aop通知类型 2.3 AOP实现原理 2.3.1 aop中的代理实现 2.4 静态代理与动态代理 2.4.1 静态代理实现 三、 jdk动态代理与cglib代理 3.1 jdk动态代理 3.1.1 jdk代理示例 3.1.2 jdk动态代理模拟实现…

设计模式——策略模式

引言 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 问题 一天&#xff0c; 你打算为游客们创建一款导游程序。 该程序的核心功能是提供美观的地图&#xff0c; 以…

[python]用python获取EXCEL文件内容并保存到DBC

目录 关键词平台说明背景所需库实现过程方法1.1.安装相关库2.代码实现 关键词 python、excel、DBC、openpyxl 平台说明 项目Valuepython版本3.6 背景 在搭建自动化测试平台的时候经常会提取DBC文件中的信息并保存为excel或者其他文件格式&#xff0c;用于自动化测试。本文…

用GitBook制作自己的网页版电子书

用GitBook制作自己的网页版电子书 前言 几年前阅读过其他人用GitBook创建的文档&#xff0c;可以直接在浏览器中打开&#xff0c;页面干净整洁&#xff0c;非常清爽&#xff0c;至今印象深刻。 GitBook非常适合用来为个人或团队制作文档&#xff0c;对于我这种偶尔写博客的人…

【Hadoop面试】HDFS读写流程

HDFS&#xff08;Hadoop Distributed File System&#xff09;是GFS的开源实现。 HDFS架构 HDFS是一个典型的主/备&#xff08;Master/Slave&#xff09;架构的分布式系统&#xff0c;由一个名字节点Namenode(Master) 多个数据节点Datanode(Slave)组成。其中Namenode提供元数…

Java架构师系统架构内部维度分析

目录 1 导语2.1 安全性维度概述2.2 流程安全性2.3 架构安全性2.4 安全维度总结3 伸缩性维度概述和场景思路3.1 无状态应用弹性伸缩3.2 阿里云Knative弹性伸缩3.3 有状态应用弹性伸缩3.4 伸缩性维度总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语