> 生活笔记  > python
python爬虫入门-urllib的基本用法和一些高级用法

urllib的基本用法以及一些参数的设置

import urllibimport urllib2

url = 'http://www.xxx.com/login'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'values = {'username': 'xxx', 'password': 'xxx'}
headers = {'User_Agent': 'user_agent'}data = urllib.urlencode(values)
request = urllib2.Request(url, data, header)
response = urllib2.urlopen(request)
html = response.read()
print html

设置了一个headers,这样在发送请求是,headers的信息会发送到服务器,而服务器则会响应。

values是请求参数,会以post提交方式提交到服务器,而get请求参数会附在url后面提交到服务器,如:http://www.xxx.com/login?username=xxx&password=xxx,这种方式回事数据直接暴露在地址栏中,有时会有泄露信息的风险,所以涉及到比较私密的数据回忆post方式提交。 
这样,我们就能获取到网页的源代码,Python学习爬虫语法简结,入门简单,是一个很好的选择。

Proxy(代理)的设置 

urllib2默认会使用环境变量http_proxy来设置HTTP Proxy,例如一个网站会检测某一时间段内某个ip的访问次数,如果访问次数过多,会限制该ip的访问,所以可以设置一些代理服务器来帮助我们访问网站,每隔一段时间换一个代理。

代理设置的用法

import urllib2

enable_proxy = Trueproxy_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.buile_opener(null_proxy_handler)
urllib2.install_opener(opener)

Timeout设置 

urllib2的urlopen方法的第三个参数就是timeout的设置,可以设置等待多久超时,为了解决一些网站实在响应过慢而造成的影响。 
例如下面的代码,如果第二个参数data为空那么要特别指定是timeout是多少,写明形参,如果data已经传入,则不必声明。

import urllib2
response = urllib2.urlopen('http://www.xxx.com', timeout=10)

response = urllib2.urlopen('http://www.xxx.com', data, 10)

转载自静觅博客。

0条评论
猜你喜欢
精品推荐
扫二维码,加好友一起学习吧!