当前位置:首页 > Python > 正文内容

[Python 教程] Python 网络请求与爬虫基础

admin4个月前 (03-18)Python134

Python 网络请求与爬虫基础

requests 是 Python 最常用的 HTTP 库。本文介绍网络请求和爬虫的基础知识。

一、基础请求

import requests

# GET 请求
response = requests.get('https://api.example.com/data')
print(response.status_code)  # 状态码
print(response.text)         # 响应文本
print(response.json())       # JSON 响应

# 带参数
params = {'q': 'python', 'page': 1}
response = requests.get('https://api.example.com/search', params=params)

# POST 请求
data = {'username': 'user', 'password': 'pass'}
response = requests.post('https://api.example.com/login', data=data)

二、请求头

headers = {
    'User-Agent': 'Mozilla/5.0',
    'Accept': 'application/json',
    'Authorization': 'Bearer token123'
}

response = requests.get('https://api.example.com/data', headers=headers)

三、会话管理

session = requests.Session()

# 保持会话(自动处理 cookies)
session.get('https://example.com/login', data={'user': 'admin'})
response = session.get('https://example.com/profile')

# 使用上下文
with requests.Session() as session:
    session.get('https://example.com')

四、文件上传

# 上传文件
files = {'file': open('report.xls', 'rb')}
response = requests.post('https://example.com/upload', files=files)

# 下载文件
response = requests.get('https://example.com/image.jpg')
with open('image.jpg', 'wb') as f:
    f.write(response.content)

五、异常处理

try:
    response = requests.get('https://api.example.com', timeout=5)
    response.raise_for_status()  # 检查状态码
except requests.exceptions.Timeout:
    print('请求超时')
except requests.exceptions.HTTPError as e:
    print(f'HTTP 错误:{e}')
except requests.exceptions.RequestException as e:
    print(f'请求异常:{e}')

六、简单爬虫示例

from bs4 import BeautifulSoup

def crawl_page(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 提取所有链接
    links = soup.find_all('a')
    for link in links:
        href = link.get('href')
        text = link.get_text(strip=True)
        print(f'{text}: {href}')

crawl_page('https://example.com')

相关文章

Python 装饰器的实用技巧与高级用法

装饰器本质上是一个接受函数作为参数并返回新函数的高阶函数。理解这一点是掌握装饰器的关键。让我们从最简单的例子开始,逐步深入到复杂的应用场景。首先,我们需要理解函数在 Python 中是一等公民。这意味...

Python装饰器实战:从零到精通的5个经典场景

Python装饰器(Decorator)是一个非常强大且优雅的语言特性,它允许我们在不修改原函数代码的情况下,为函数添加额外的功能。本文将通过5个实战场景,带你深入理解装饰器的原理和应用。 一、装饰...

Python 数据处理三部曲:从清洗到可视化的实战指南

在现代数据驱动的工作场景中,无论是处理实验数据、分析用户行为,还是监控业务指标,高效的数据处理能力都是不可或缺的。Python 提供了一套完整的数据处理工具链,其中 NumPy、Pandas 和 Ma...

Python装饰器:从基础到进阶的完整指南

装饰器(Decorator)是Python编程语言中一个非常强大的工具。简单来说,装饰器是一个可以接受函数作为参数,并返回一个新函数的函数。这种设计模式让我们能够在不修改原有函数代码的情况下,为函数...

Python 类型注解完整指南与最佳实践

引言 随着 Python 项目的规模增长,代码的可维护性和类型安全性变得越来越重要。Python 3.5 引入了类型注解(Type Hints)机制,允许开发者在代码中标注变量和函数的类型信息。虽然...

Python 装饰器:从原理到实战应用的完整指南

装饰器的核心思想 装饰器本质上是一个接受函数作为参数的函数,它返回一个新的函数。这个新函数通常会包装原函数,在执行前后添加额外的逻辑。装饰器的语法糖 @ 让代码更加简洁优雅。 为什么需要装饰器?...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。