Python2.7爬虫之urllib与urllib2抓取网页
程序员文章站
2022-05-04 11:42:12
...
在Python中,我们使用urllib2
这个组件来抓取网页。
1、urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。
它以urlopen函数的形式提供了一个非常简单的接口。
最简单的urllib2的应用代码只需要四行。
我们来感受一下urllib2的作用:
import urllib2
response = urllib2.urlopen('http://www.baidu.com/')
html = response.read()
print html
2、urllib2
用一个Request
对象来映射你提出的HTTP请求。
在它最简单的使用形式中你将用你要请求的地址创建一个Request对象,
通过调用urlopen并传入Request对象,将返回一个相关请求response对象,
这个应答对象如同一个文件对象,所以你可以在Response中调用.read()。
import urllib2
req = urllib2.Request('http://www.baidu.com')
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
3、除了"http:",URL同样可以使用"ftp:","file:"等等来替代。
4、设置Headers到http请求
有一些站点不喜欢被程序(非人为访问)访问,或者发送不同版本的内容到不同的浏览器。
默认的urllib2把自己作为“Python-urllib/x.y”(x和y是Python主版本和次版本号,例如Python-urllib/2.7),
import urllib
import urllib2
url = 'http://www.baidu.com/s'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
headers = { 'User-Agent' : user_agent }
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()
参考文献
1、零基础写python爬虫之使用urllib2组件抓取网页内容
2、urllib与urllib2的学习总结(python2.7.X)
3、Python自动化测试 (九)urllib2 发送HTTP Request(推荐)