c 抓取网页数据( 方法urlopen原形❝urllib2.HTTPError:超时时间设置改方法返回网页信息 )

优采云 发布时间: 2022-02-18 16:14

  c 抓取网页数据(

方法urlopen原形❝urllib2.HTTPError:超时时间设置改方法返回网页信息

)

  

  使用 Python 库 urllib2,使用了 urlopen 和 Request 方法。方法urlopen的原型❝ urllib2.urlopen(url[, data][, timeout]) 其中:url代表目标网页的地址,可以是字符串,也可以是请求对象Requestdata代表post timeout提交给目标服务器的参数表示超时时间设置,该方法返回一个类似文件的对象。有geturl()、info()、read()方法,其中geturl()返回连接地址,info()返回网页信息。获取网页内容,可以使用read()方法,read也可以带参数,表示读取内容的大小(字节)。

  ❞

  import urllib2

socket = urllib2.urlopen("http://www.baidu.com")

content = socket.read()

socket.close()

  这样,网页的内容就被爬下来了,但是有的网站禁止爬虫。如果直接请求,会出现如下错误: urllib2.HTTPError: HTTP Error 403: Forbidden 解决方法是在 request 中添加头信息来伪装浏览器的访问行为,需要使用 Request 方法:

  方法请求原型❝ urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable]) 其中:url表示目标网页的地址,可以是字符串,也可以是request object Requestdata post方法中提交给目标服务器的参数headers代表用户ID,是字典类型的数据。其中一些不允许脚本爬取,所以需要一个用户代理,比如火狐浏览器的代理:Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/ 2.0.0.11 浏览器标准UA格式为:浏览器ID(操作系统ID;加密级别标识;浏览器语言) 渲染引擎标识版本信息,默认headers为Python -urllib/2.

  ❞

  headers = {'User-Agent':'Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11'}

req = urllib2.Request(url="http://blog.csdn.net/deqingguo",headers=headers)

socket = urllib2.urlopen(req)

content = socket.read()

socket.close()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线