1. 程式人生 > >Python極簡教程之八:網路爬蟲入門

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)