1. 程式人生 > >Python 3.0最簡單的爬蟲

Python 3.0最簡單的爬蟲

做個小專案練練手,比較有動力繼續下去,這邊參考最簡單的爬蟲程式自己抄了一下。但是因為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!"
)