python3實現簡單的爬蟲
阿新 • • 發佈:2018-12-16
主要實現的是從百度貼吧爬取一些圖片
開啟對應的網頁
主要是使用python下的庫urllib
- request.urlopen() 開啟目標網頁
- read() 讀取網頁資訊
因此最開始程式碼如下:
#coding=utf-8
from urllib import request
def getHtml(url):
page = request.urlopen(url)
html = page.read()
return html
html = getHtml("https://tieba.baidu.com/p/5882095555")
print(html)
獲取網頁裡面的圖片
需要用到python的re庫做正則的處理,還要根據所爬的網頁去確定圖片的正則表示式,修改後程式碼如下:
#coding=utf-8
from urllib import request
def getHtml(url):
page = request.urlopen(url)
html = page.read()
return html
def getImg(html)
reg = r'img class="BDE_Image" src="(.+?\.jpg)"'
imgre = re.compile(reg)
html = html.decode('utf-8')
imglist = re.findall(imgre,html)
return imglist
html = getHtml("https://tieba.baidu.com/p/5882095555")
print(getImg(html))
在這段程式碼中,
- reg為正則表示式
- compile() 函式用來構建正則物件
- findall() 函式用來尋找網頁中符合正則匹配的圖片
將獲取到的圖片儲存到本地
這裡只要使用request中的urlretrieve()處理,寫入自己要儲存的地址,修改後程式碼如下:
#coding=utf-8
from urllib import request
import re
def getHtml(url):
page = request.urlopen(url)
html = page.read()
return html
def getImg(html):
reg = r'img class="BDE_Image" src="(.+?\.jpg)"'
imgre = re.compile(reg)
html = html.decode('utf-8')
imglist = re.findall(imgre,html)
x = 0
for imgurl in imglist:
request.urlretrieve(imgurl,'E:\img\ background%s.jpg' % x)
x += 1
return imglist
html = getHtml("https://tieba.baidu.com/p/5882095555")
print(getImg(html))
最後執行程式,就會在制定位置看到爬去下來的圖片了