Python爬虫—1入门_2_python内置urllib库的高级用法

1、设置Headers
     很多的网站并不允许之前的方式来进行网页访问;
     它们可能会识别出发来网页请求的不是浏览器,这时候,我们就需要完全模拟浏览器;
     这时候就需要设置一些headers属性。
     下面介绍一些比较重要的headers属性需要设置:
     user-agent:发出网页请求的浏览器信息
      referer:反盗链,存放的是当前请求的网址
      cookie:身份识别信息,比如登录状态、用户信息、session信息等
          以下是例程:
import urllib
import urllib2
url =  "http://www.u148.net/ajax/user/login"
user_agent =  "Mozilla/5.0 (Windows NT 6.1; WOW64)"
referer =  "http://www.u148.net/ajax/user/login"
headers = { "user-agent": user_agent,  "referer": referer}
values = { "uname": "zhoushuo_19@126.com""password": "XXXXXXX"}
data = urllib.urlencode(values)
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
print response.read()

2、Proxy(代理)的设置
     有部分网站会限制同一个ip的访问次数,用于防止爬虫或者ddos攻击;
     当访问次数过多时,就会禁止该ip的访问,这时就需要设置一些代理服务器;
     每隔一段时间就换一个代理。
     因为普通的urlopen()函数不支持验证、cookie或者其他HTTP高级功能;
     这里需要使用build_opener( )函数创建自定义的opener对象,用以支持上述功能;
     build_opener([handler1 [handler2 ... ]])
     handler是Handler实例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等
     install_opener(opener)
     安装不同的opener对象作为urlopen( )使用的全局opener
import urllib2
enable_proxy =  True
proxy_handler = urllib2.ProxyHandler({ "http": "http://some-proxy.com:8080"})
null_proxy_handler = urllib2.ProxyHandler({})
if enable_proxy:
    opener = urllib2.build_opener(proxy_handler)
else:
    opener = urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)

3、Timeout设置
     设置超时,解决一些网站相应时间过长造成的影响
import urllib2
response = urllib2.urlopen( "http://www.baidu.com"timeout 10)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值