Python 3.0最簡單的爬蟲
阿新 • • 發佈:2019-01-02
做個小專案練練手,比較有動力繼續下去,這邊參考最簡單的爬蟲程式自己抄了一下。但是因為3.0的關係,無法直接使用,根據2.0版本的程式碼進行修改後成功了。
程式碼如下:
# -*- coding: utf-8 -*-
# 網上抄來的最簡單的爬蟲,用於批量下載圖片
import urllib.request
import re
#該函式用於獲取html內容
#使用到urlopen的函式
def getHtml(url):
page = urllib.request.urlopen(url)
#3.0直接使用read()函式會出現報錯,提示是編碼有問題。在後面加上編碼就ok了。
html = page.read().decode("utf-8")
return html
def getImg(html):
#reg為正則替換,這邊是根據貼吧的帖子的圖片在html中的狀態拼的,只適用於貼吧帖子下圖
#正則的詳細教程見:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
reg = r'src="(.+?\.jpg)" pic_ext'
#compile比較簡單的解釋是製作一個漏斗,規則如reg,只有符合的才能夠通過。
imgre = re.compile(reg)
imgList = re.findall(imgre, html)
x = 0
for imgurl in imgList:
#print ("for test %s" % x) 檢視是否走到迴圈用的print
#urlretrieve() 方法直接將遠端資料下載到本地
urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
x += 1
#html變數定義一個需要讀取的網址,這邊選擇的是某個貼吧的帖子。
html = getHtml("http://tieba.baidu.com/p/3115557410")
#執行操作
getImg(html)
print("all over!" )