18910140161

python使用urllib2抓取网页

顺晟科技

2021-06-16 10:41:56

303

1.使用python的库urllib2,并使用urlopen和Request方法。

2.方法urlopen原型

urllib2.urlopen(url[,数据][,超时])

其中:

Url表示目标网页地址,可以是字符串或请求对象请求

数据表示在post模式下提交给目标服务器的参数

超时表示超时设置

修改后的方法返回一个类似文件的对象,包括geturl(),info()和read()方法,其中geturl()返回连接地址,info()返回网页信息。

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

导入urllib2

socket=urllib 2 . URL open(' http://www . Baidu.com ')

content=socket.read()

socket.close()

这样网页的内容就往下爬,但是有些网站禁止爬虫。如果您直接请求,将会出现以下错误:

urllib2。HTTP错误403:禁止

解决方案是向请求添加标头信息,伪装成浏览器的访问行为,并需要使用请求方法:

3.方法请求原型

urllib2。请求(url[,数据][,标头][,origin_req_host][,无法验证])

其中:

Url表示目标网页地址,可以是字符串或请求对象请求

数据表示在post模式下提交给目标服务器的参数

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

Origin_req_host表示请求者的主机域名或ip地址

无法验证还不了解。

看一个例子:

headers={ ' User-Agent ' : ' Mozilla/5.0(X11;u;Linux i686)Gecko/20071127 Firefox/2 . 0 . 0 . 11 ' }

req=urllib2。请求(URL=' http://blog . csdn . net/郭德清',标头=标头)

socket=urllib2.urlopen(req)

content=socket.read()

socket.close()

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航