1. 程式人生 > >python3實現簡單的爬蟲

python3實現簡單的爬蟲

主要實現的是從百度貼吧爬取一些圖片

開啟對應的網頁

主要是使用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))

最後執行程式,就會在制定位置看到爬去下來的圖片了