【Python】Requests 库使用示例

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

使用Requests库进行网络爬虫

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

1. 安装requests库

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

bash 复制代码
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库

bash 复制代码
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库来解析和清洗数据。在实际应用中,您需要根据微博页面的具体结构来调整选择器。

相关推荐
APIshop15 小时前
实战解析:苏宁易购 item_search 按关键字搜索商品API接口
开发语言·chrome·python
百***920215 小时前
java进阶1——JVM
java·开发语言·jvm
蓝桉~MLGT15 小时前
Python学习历程——Python面向对象编程详解
开发语言·python·学习
Evand J15 小时前
【MATLAB例程】2雷达二维目标跟踪滤波系统-UKF(无迹卡尔曼滤波)实现,目标匀速运动模型(带扰动)。附代码下载链接
开发语言·matlab·目标跟踪·滤波·卡尔曼滤波
larance15 小时前
Python 中的 *args 和 **kwargs
开发语言·python
Easonmax15 小时前
用 Rust 打造可复现的 ASCII 艺术渲染器:从像素到字符的完整工程实践
开发语言·后端·rust
lsx20240615 小时前
Rust 宏:深入理解与高效使用
开发语言
百锦再15 小时前
选择Rust的理由:从内存管理到抛弃抽象
android·java·开发语言·后端·python·rust·go
yaoxin52112315 小时前
238. Java 集合 - 使用 ListIterator 遍历 List 元素
java·python·list
小羊失眠啦.15 小时前
深入解析Rust的所有权系统:告别空指针和数据竞争
开发语言·后端·rust