读取网页
下载后使用gbk
解码。
import urllib2
url = 'http://www.domain.com/domestic'
# download
resp = urllib2.urlopen(url).read()
# decode
resp = resp.decode('gbk')
# print
print(resp)
传入参数
传参调用,针对?
后面的查询字符串。
import urllib
import urllib2
url = 'http://www.domain.com/domestic'
# prepare request
req = urllib2.Request(url)
data = urllib.urlencode({'typeId': 123})
# download
resp = urllib2.urlopen(req, data).read()
# decode
resp.decode('gbk')
# print
print(resp)
GZIP 解析
部分站点的网页开启了gzip
压缩,这样我们下载之后得到的页面需要解压之后才可以看到具体的内容。
import gzip
import StringIO
import urllib2
# download
resp = urllib2.urlopen('http://www.domain.com/domestic').read()
# decode
resp = gzip.GzipFile(fileobj=StringIO.StringIO(resp)).read()
# print
print(resp)
下载图片
此处以下载百度logo为例。
import urllib2
url = 'http://www.baidu.com/img/bd_logo1.png'
name = url.split('/').pop()
# open file
with open(name, 'wb') as code:
# download
b = urllib2.urlopen(url).read()
# save to local
code.write(b)
批量调用
从一个文本文件中读取Url数据集。
import urllib2
# read url collection
f = open('urls.txt', 'r')
url_arr = f.readlines()
f.close()
# invoke
i = 0
for url in url_arr:
# index
i += 1
print i
# load url
html = urllib2.urlopen(url).read()
# print
print(html)