当前位置:首页 » 编程语言 » pythonurllib2请求

pythonurllib2请求

发布时间: 2025-08-16 16:41:38

python2.7 怎样集成 urllib2

python最恶心的地方就在于它的版本和配置了,特别是安装第三方包的时候经常会出现莫名其妙的错误,又不懂。

所以只能不断的切来切去的。

今天学习python爬虫,其中Python2.7使用了urllib和urllib2,python3的urllib结合了py2.7的两部分。但是电脑不知为什么又安装不了py3的urllib,好烦。出现下面的错误。

python2.7和python3主要是模块的位置变化地方较多。

其中python2.7的urllib和urllib2的区别一下:

  • urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以通过urllib模块伪装你的User Agent字符串等(伪装浏览器)。

  • urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。

  • urllib2模块比较优势的地方是urlliburllib2.urlopen可以接受Request对象作为参数,从而可以控制HTTP Request的header部。

  • 但是urllib.urlretrieve函数以及urllib.quote等一系列quote和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助。

② python中ihttplib,httplib2,urllib2在http请求时哪个更快

= time.time()

httplib2.Http().request(url)
t6 = time.time()
http2 = t6-t5

t3 = time.time()
req = httplib.HTTPConnection(com')
req.request('GET', '/')
t4 = time.time()
http = t4-t3


t1 = time.time()
urllib2.urlopen(url)
t2 = time.time()
urll = t2-t1

print http2
print httpprint urll

结果:
0.156999826431
0.0150001049042
0.0780000686646
我写了如上代码测试的时候通常都是httplib的速度较快.实际过程中也是如此吗?还是我测试的不对。还有head请求与get请求,为什么head请求测试的时候感觉并没有节省时间呢。我想写爬虫程序,希望速度能更快。

不知道你做了多少次重复的测试呢,单凭一次的测试结果不说明任何问题,我觉得有以下几点可以说明

  • 抓取网页的时间很多取决于http连接建立和数据传输的时间,所以网络状况的影响很大,如果每次都是重新建立连接,和采用什么python库关系不大

  • urllib3可以复用tcp连接来进行多次http请求,所以可以省掉重新建立tcp的时间;requests会检查是否安装了urllib3。

  • head/get请求的时间取决于你请求的server端是否对这两种请求做了不同的处理,如果没有区分的话,两种请求也就没有区别

③ python requests get方式怎么设置请求头

Header可以通过Request提供的.add_header()方法进行添加,示例代码如下:

  • 123456789101112#-*-coding:utf-8-*-

  • importurllib2importurlliburl='http://ah.example.com'half_url=u'/servlet/av/jd?

  • ai=782&ji=2624743&sn=I'#构造get请求req=urllib2.

  • Request(url+half_url.

  • encode('utf-8'))#添加headerreq.add_header('AcceptEncoding','gzip,deflate')req.

  • add_header('User-Agent','Mozilla/5.0')response=urllib2.

  • urlopen(req)

  • printresponse.

④ python 爬虫时,urllib2.HTTPError:HTTP Error 502:Bad Gateway是什么原因怎么解决

可能是那个网站阻止了这类的访问,只要在请求中加上伪装成浏览器的header就可以了,比如:

headers={
'User-Agent':'Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.6)Gecko/20091201Firefox/3.5.6'
}
req=urllib2.Request(
url="http://www.qiushike.com/imgrank"
,
headers=headers
)
myResponse=urllib2.urlopen(req)

⑤ python urllib2进行网页源代码扒取时,出现urllib2.HTTPError: HTTP Error 250: Forbidden问题

HTTP请求的Headers包含浏览器的信息、所使用的语言、请求的主机、COOKIE等信息。

其中最重要的两项是浏览器的信息User-Agent,如果请求中没有User-Agent,网站会认为不是人在浏览器的请求,是恶意攻击

对于需要登录的网站,请求中往往需要COOKIE来验证用户,来获取打开某些网站的权限。

使用firefox浏览器的开发者工具箱>网络选项,可以很容易获取User-Agent等头信息

headers={"User-Agent":"Mozilla/5.0Firefox/35.0",
"Cookie":"BDUSS=AAAAAAAAAAAAAAAAAAAAAAAA",}
request=urllib2.Request(url,postData,headers=headers)
response=urllib2.urlopen(request)

热点内容
如何将游戏数据从安卓转移到iphone 发布:2025-08-16 20:58:55 浏览:361
多表编译教程 发布:2025-08-16 20:58:54 浏览:606
市民云实名制服务器异常 发布:2025-08-16 20:50:51 浏览:712
目标服务器地址格式错误 发布:2025-08-16 20:40:55 浏览:708
文件夹病毒专杀软件 发布:2025-08-16 20:40:50 浏览:806
百信电脑初始密码多少 发布:2025-08-16 20:32:38 浏览:392
家装电箱怎么配置最合理怎么接线 发布:2025-08-16 20:23:15 浏览:678
安卓系统加密什么意思 发布:2025-08-16 20:13:11 浏览:99
手机中的解压缩 发布:2025-08-16 19:56:50 浏览:190
android与jni 发布:2025-08-16 19:48:11 浏览:57