Python极简教程之八:网络爬虫入门

读取网页

下载后使用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)

猜你喜欢

转载自blog.csdn.net/lpw_cn/article/details/84559707