Python極簡教程之八:網路爬蟲入門
阿新 • • 發佈:2018-11-29
讀取網頁
下載後使用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)