python爬虫 - 使用urllib(四)

本文详细介绍了在Python爬虫中如何处理Cookies和Proxy,通过使用http.cookiejar和urllib.request库,实现自动处理Cookies,以及如何设置代理进行网络请求,适用于需要绕过简单限制或获取特定地区信息的场景。

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

现在已经可以修改headers和data,那么网站登陆可能需要cookies或者proxy,这又该如何解决?

cookies

Cookies 的处理就需要 Cookies 相关的 Handler 了。

import http.cookiejar, urllib.request

cookies = http.cookiejar.CookieJar()
handler = urllib.request.HTTPCookieProcessor(cookies)
opener = urllib.request.build_opener(handler)
response = opener.open('http://www.baidu.com')
for item in cookies:
    print(item.name+ "=" + item.value)

运行结果如下:

BAIDUID=80AABDE88B6B2E4E664C9A0C364A5A39:FG=1
BIDUPSID=80AABDE88B6B2E4E664C9A0C364A5A39
H_PS_PSSID=1449_21125_28328_28413
PSTM=1549343922
delPer=0
BDSVRTM=0
BD_HOME=0

这样就可以简单的获得网页的url了

proxy

在做爬虫的时候免不了要使用代理,如果要添加代理,可以这样做:

from urllib.error import URLError
from urllib.request import ProxyHandler, build_opener

proxy_handler = ProxyHandler({
    'http': 'http://127.0.0.1:1080',
    'https': 'https://127.0.0.1:1080'
})
opener = build_opener(proxy_handler)
response = opener.open('http://httpbin.org/get')
print(response.read().decode('utf-8'))

在此本地搭建了一个代理,运行在1080端口上。

在这里使用了ProxyHandler,ProxyHandler的参数是一个字典,键名是协议类型,比如HTTP还是HTTPS等,键值是代理链接,可以添加多个代理。

然后利用 build_opener()方法利用这个Handler构造一个Opener,然后发送请求即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值