urllib总结

python爬虫之urllib总结
Urllib库是Python中的一个功能强大、用于操作URL,并在做爬虫的时候经常要用到的库。在Python2.x中,分为Urllib库和Urllib2库,Python3.x之后都合并到Urllib库中,使用方法稍有不同。

urllib
模拟浏览器发送请求的库,Python自带

常见的变化有:

在Pytho2.x中使用import urllib2-------对应的,在Python3.x中会使用import urllib.request,urllib.error。
在Pytho2.x中使用import urllib-------对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse。
在Pytho2.x中使用import urlparse-------对应的,在Python3.x中会使用import urllib.parse。
在Pytho2.x中使用import urlopen-------对应的,在Python3.x中会使用import urllib.request.urlopen。
在Pytho2.x中使用import urlencode-------对应的,在Python3.x中会使用import urllib.parse.urlencode。
在Pytho2.x中使用import urllib.quote-------对应的,在Python3.x中会使用import urllib.request.quote。
在Pytho2.x中使用cookielib.CookieJar-------对应的,在Python3.x中会使用http.CookieJar。
在Pytho2.x中使用urllib2.Request-------对应的,在Python3.x中会使用urllib.request.Request。

浏览器的模拟—Headers属性
有的时候,我们无法爬取一些网页,会出现403错误,因为这些网页为了防止别人恶意采集其信息所以进行了一些反爬虫的设置。
可以设置一些Headers信息,模拟成浏览器去访问这些网站,此时,就能够解决这个问题了。
我们需要让爬虫模拟成浏览器,模拟成浏览器可以设置User-Agent信息。

import urllib.request
import urllib.parse

url='http://www.baidu.com'
hearder={
   'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}

request=urllib.request.Request(url,headers=header)
reponse=urllib.request.urlopen(request).read()

fh=open("./1.html","wb")
fh.write(reponse)
fh.close()

超时设置
有的时候,我们访问一个网页,如果该网页长时间未响应,那么系统就会判断该网页超时了,即无法打开该网页。
有的时候,我们需要根据自己的需要来设置超时的时间值。我们可以在urllib.request.urlopen()打开网址的时候,通过timeout字段设置。
设置格式为:urllib.request.urlopen(要打开的网址,timeout=时间值)。

代理的使用:

步骤:
1.参数是一个字典{‘类型’:‘代理IP:端口号’}
proxy_support=urllib.request.ProxyHandler({‘类型’:‘代理IP:端口号’})
2.定制、创建一个opener
opener = urllib.request.build_opener(Proxy_support)
创建opener以后,也可以在opener里添加一个User-agent,代码如下:
opener.addheaders = [(‘’User_agent,’’)]
3a.安装opener(这种方法将opener一劳永逸地安装到系统中,每次访问自动使用这个代理访问)
urllib.request.install_opener(opener)
3b.调用opener(这种方法暂时使用代理进行一次访问)
opener.open(url)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值