python爬虫 - 使用urllib(四)

现在已经可以修改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,然后发送请求即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值