【Python】Requests 库使用示例

news/2024/9/11 2:51:48/ 标签: python, 开发语言

本文使用Python+requests库对微博页面进行数据抓取和简单的数据清洗

使用Requests库进行网络爬虫

requests是一个PythonHTTP客户端库,用于发送HTTP请求。它简单易用,同时提供了足够的功能来处理各种网络请求。

1. 安装requests库

Python中安装requests库,可以使用pip,使用国内镜像源,下载速度更快:

pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

常用的镜像源可以参考以下文章:Python常用镜像库源

2. 基本用法

2.1 发送GET请求

python">import requests
# 发送GET请求
response = requests.get('https://www.weibo.com/')
# 检查响应状态码
if response.status_code == 200:print('成功获取页面内容')
else:print('请求失败,状态码:', response.status_code)

2.2 解析响应内容

python"># 获取响应的文本内容
page_content = response.text
# 打印前500个字符
print(page_content[:500])

3. 数据清洗

通常,抓取到的HTML页面需要经过数据清洗,以提取有用的信息。可以使用BeautifulSoup库进行HTML的解析和清洗。

3.1 安装BeautifulSoup库

pip install beautifulsoup4

3.2 使用BeautifulSoup清洗数据

python">from bs4 import BeautifulSoup
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(page_content, 'html.parser')
# 假设我们要提取微博用户的昵称
user_nicknames = soup.find_all('nick-name')
# 清洗并打印用户昵称
for nickname in user_nicknames:print(nickname.get_text().strip())

4. 完整示例

以下是一个简单的示例,展示了如何抓取微博页面并清洗数据。

python">import requests
from bs4 import BeautifulSoup
# 微博页面URL(需登录微博,点击任一内容页面)
url = 'https://www.weibo.com/'
# 发送GET请求
response = requests.get(url)
# 检查响应状态码
if response.status_code == 200:# 解析HTML内容soup = BeautifulSoup(response.text, 'html.parser')# 假设我们要提取所有微博用户的昵称user_nicknames = soup.find_all('nick-name')# 清洗并打印用户昵称for nickname in user_nicknames:print(nickname.get_text().strip())
else:print('请求失败,状态码:', response.status_code)

请注意,实际的微博页面结构可能与此示例不同,在摘取信息的时候需要根据实际情况调整选择器和清洗逻辑。此外,微博可能会采取反爬虫措施,因此在实际应用中可能需要其他技术来绕过这些措施。

这个示例展示了如何使用requests库来获取微博页面的HTML内容,并使用BeautifulSoup库来解析和清洗数据。在实际应用中,您需要根据微博页面的具体结构来调整选择器。


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

相关文章

【集成平台】大数据集成平台建设方案(原件word)

基础支撑平台主要承担系统总体架构与各个应用子系统的交互,第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上,实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台,提出了以下要求: 基于平台的基础架构&…

从 Github 安装 R packages 不完全指南

前言 R语言,一个被广泛使用的统计计算和数据分析工具。在日常使用过程中,需要安装实现各种功能、来自各种渠道的工具包(packages)比如:CRNA或者Github。很多包已经发布在 CRAN 上,使用 install.packages(&q…

【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测

深入探讨JavaScript库:功能、配置与应用场景 前言 在现代的Web开发中,JavaScript库扮演着至关重要的角色,帮助开发人员简化代码、提高效率、实现更好的用户体验。本文将探讨几个常用的JavaScript库,包括模块加载库、数据绑定库和…

JMeter之脚本录制

前言: 对于一些JMeter初学者来说,录制脚本可能是最容易掌握的技能之一。虽然我不建议录制性能脚本(因为录制的脚本比较混乱,必须要通过二次处理才可正常使用),但有时做总比不做要好,是吧…

安卓微信8.0之后如何利用缓存找回的三天之前不可见的朋友圈图片

安卓微信8.0之后如何利用缓存找回的三天之前不可见的朋友圈图片 复习了下安卓程序的知识,我们会了解到,安卓程序清楚数据的时候有两个选项 一个是清除全部数据一个是清除缓存。 清除全部数据表示清除应用数据缓存。 对于安卓微信8.0之后而言&#xff0…

判断对象能否回收的两种方法,以及JVM引用

判断对象能否回收的两种方法:引用计数算法,可达性分析算法 引用计数算法:给对象添加一个引用计数器,当该对象被其它对象引用时计数加一,引用失效时计数减一,计数为0时,可以回收。 特点&#xf…

Spring Boot中的数据迁移策略

Spring Boot中的数据迁移策略 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 一、引言 在软件开发的过程中,经常会遇到需要修改数据库结构、迁移…

ES6 Class(类) 总结(九)

ES6 中的 class 是一种面向对象编程的语法糖,提供了一种简洁的方式来定义对象的结构和行为。 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 function Point(x, y) {this.x x;this.y y; } Point.prototype.toString fu…

【ARMv8/v9 GIC 系列 5.8 -- SPI 中断路由到指定的 core 详细介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 SPI 中断路由配置寄存器字段代码示例Usage scenarioSPI 中断路由配置 在ARMv8和ARMv9架构下,当启用亲和性路由(Affinity Routing)时,系统寄存器GICD_IROUTER<n>用于提供具有INTID n的SPI的路由信息。n的最大值由公式(32*…

精益化供应链,或许才是丰田的核心竞争力!

在汽车产业这个竞争激烈的战场上&#xff0c;丰田总能凭借其卓越的品质和高效的生产能力独领风骚。而在这背后&#xff0c;一个鲜为人知的秘密武器——精益化供应链&#xff0c;正是丰田能够长期保持领先地位的核心竞争力。 一、精益化供应链 丰田的精益化供应链管理理念&…

react 组件通信 —— 父子传值 【 函数式/类式 】

1、函数式组件通信 父子间通信 —— 父传子 父组件 export default function father() {return (<div style{{width:400px,height:200px,background:pink,marginLeft:500px}}>我是父组件<hr /><Son name{"韩小刀"}/></div>) } 子组件 ex…

MybatisPlus 一些技巧

查询简化 SimpleQuery 有工具类 com.baomidou.mybatisplus.extension.toolkit.SimpleQuery 对 selectList 查询后的结果进行了封装&#xff0c;使其可以通过 Stream 流的方式进行处理&#xff0c;从而简化了 API 的调用。 方法 list() 支持对一个列表提取某个字段&#xff…

Hadoop简明教程

文章目录 关于HadoopHadoop拓扑结构Namenode 和 Datanode 基本管理启动Hadoop启动YARN验证Hadoop服务停止Hadoop停止HDFS Hadoop集群搭建步骤准备阶段Java环境配置Hadoop安装与配置HDFS格式化与启动服务测试集群安装额外组件监控与维护&#xff1a; 使用Docker搭建集群使用Hado…

如何确保 PostgreSQL 在高并发写操作场景下的数据完整性?

文章目录 一、理解数据完整性二、高并发写操作带来的挑战三、解决方案&#xff08;一&#xff09;使用合适的事务隔离级别&#xff08;二&#xff09;使用合适的锁机制&#xff08;三&#xff09;处理死锁&#xff08;四&#xff09;使用索引和约束&#xff08;五&#xff09;批…

如何在 Objective-C 中实现多态性,并且它与其他面向对象编程语言的多态性实现有何差异?

在Objective-C中&#xff0c;多态性可以通过使用父类的指针来调用子类的方法来实现。具体来说&#xff0c;可以定义一个父类的指针&#xff0c;然后将子类的实例赋值给这个指针。这样&#xff0c;即使使用父类的指针来调用方法&#xff0c;实际上会调用子类的方法。 需要注意的…

2024.7.11 刷题总结

2024.7.11 **每日一题** 2972.统计移除递增子数组的数目 Ⅱ&#xff0c;这道题和昨天的前置题目思路完全一样&#xff0c;只是数据范围变大了。我们还是先处理最大上升前缀&#xff0c;并且加上答案。然后从最后一个元素开始遍历&#xff0c;直到出现非下降元素就终止&#xff…

Elon Musk开源Grok

转载自&#xff1a;AILab基地 早在6天前&#xff0c;马斯克就发文称xAI将开源Grok 图片 13小时前&#xff0c;马斯克开源了旗下公司X的Grok训练模型&#xff0c;并喊话OpenAI&#xff0c;你名字里的Open到底在哪里 图片 下面是xai-org的GitHub开源地址[https://github.com/x…

羧基聚乙二醇生物素的制备方法;COOH-PEG-Biotin

羧基聚乙二醇生物素&#xff08;COOH-PEG-Biotin&#xff09;是一种常见的生物分子聚合物&#xff0c;具有多种应用&#xff0c;特别是在生物实验、药物研发和生物技术等领域。以下是对该化合物的详细解析&#xff1a; 一、基本信息 名称&#xff1a;羧基聚乙二醇生物素&#x…

钉钉扫码登录第三方

钉钉文档 实现登录第三方网站 - 钉钉开放平台 (dingtalk.com) html页面 将html放在 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录</title>// jquery<script src"http://code.jqu…

网络(一)——初始网络

文章目录 计算机网络的背景网络发展认识 "协议" 网络协议初识协议分层网络分层 网络传输基本流程数据包封装和分用网络中的地址管理认识IP地址认识MAC地址 计算机网络的背景 网络发展 独立模式:计算机之间相互独立 在最早的时候&#xff0c;计算机之间是相互独立的&…