您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页【转】python使用urllib2抓取网页

【转】python使用urllib2抓取网页

来源:华佗小知识

1、使用python的库urllib2,用到urlopen和Request方法。

2、方法urlopen原形

urllib2.urlopen(url[, data][, timeout])

其中:

data表示post方式提交给目标服务器的参数

timeout表示超时时间设置

要获取网页内容可以使用read()方法,read也可以带参数,表示读取内容的大小(字节)。

这样,网页的内容(content)就爬下来了,但是有些网站禁止爬虫,如果直接请求会出现以下错误:

urllib2.HTTPError: HTTP Error 403: Forbidden

解决方法是可以在请求加上头信息,伪装成浏览器的访问行为,需要用到Request方法:

3、方法Request原型

urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])

其中:

data表示post方式提交给目标服务器的参数

headers表示用户标识,是一个字典类型的数据,有些不允许脚本的抓取,所以需要用户代理,像火狐浏览器的代理就是类似:Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11 浏览器的标准UA格式为:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息 ,headers默认是Python-urllib/2.6

unverifiable还没搞懂。。。

看一个例子:

  1. >>> headers = {'User-Agent':'Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11'}  
  2. >>> req = urllib2.Request(url="http:///deqingguo",headers=headers)  
  3. >>> socket = urllib2.urlopen(req) 
  4. >>> content = socket.read()  

  5.  

     

    >>> socket.close()  

转载于:https://www.cnblogs.com/sunada2005/archive/2013/05/25/3099168.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务