Python爬虫笔记(urllib模块)

本文深入讲解了使用Python进行网络请求的方法,包括GET和POST请求的发送,超时处理,响应状态及头部信息的获取,以及如何模拟Header访问网站。通过实例演示了不同类型的网络请求及其处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 测试地址:httpbin.org

import urllib.request

# 获取一个get请求
response = urllib.request.urlopen("http://baidu.com")
print(response.read().decode("utf-8"))

# 获取一个post请求
import urllib.parse
data = bytes(urllib.parse.urlencode({"user":"password"}),encoding="utf-8")
response = urllib.request.urlopen("http://httpbin.org/post",data= data)
print(response.read().decode("utf-8"))

# 超时处理
try:
    response = urllib.request.urlopen("http://httpbin.org/get",timeout=0.1)
    print(response.read().decode("utf-8"))
except urllib.error.URLError as e:
    print("time out!")
    
# 获取response信息
response = urllib.request.urlopen("http://baidu.com")
print(response.status)
print(response.getheaders())
print(response.getheader("Server"))

# 模拟header访问豆瓣
url = "http://douban.com"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
}
# data = bytes(urllib.parse.urlencode({"user":"password"}),encoding="utf-8") # post参数
req = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(req)
print(response.read().decode("utf-8"))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值