Python:網路爬蟲
阿新 • • 發佈:2018-11-08
網路爬蟲,爬取某網站的某個網頁的所有圖片。
python的網路爬蟲是很強大的。
import urllib.request import re path="http://www.xiaohuar.com/2014.html" content=urllib.request.urlopen(path).read() content=content.decode("gb2312","ignore") imgRe=re.compile(r'src="(.+?\.jpg)"') imagePaths=imgRe.findall(content) i=0 for imagePath in imagePaths: if "http:" not in imagePath: imagePath="http://www.xiaohuar.com"+imagePath i+=1 urllib.request.urlretrieve(imagePath,f'E:\\Kingjava\\images\\{i}.jpg') print(i)
爬取的是一個校花網的頁面圖片
1.path:是一個網站的網址,注意,一定是要有帶網頁名字的。否則,不知道是爬取哪個?
因為,爬蟲終究爬取的是網頁。
2.urllib.request.urlopen(path).read()
讀取整個網頁
3.content=content.decode("gb2312","ignore")
網頁具有自身的編碼格式
ignore:忽略
注意:這不是在給content設定編碼格式,而是複製給本身
4.
imgRe=re.compile(r'src="(.+?\.jpg)"')
正則表示式
尋找字尾為.jpg的圖片,也可以根據需要修改
5.
imagePaths=imgRe.findall(content)
找到所有.jpg圖片路徑
6.
foreach imagePaths
根據網站的特殊性,某些圖片沒有完整路徑,需要進行判斷
urllib.request.urlretrieve(imagePath,f'E:\\Kingjava\\images\\{i}.jpg')
一一根據路徑下載到指定的某個資料夾
爬蟲的框架:
scrapy
上述所做的只是簡單的爬取圖片
真正的需求爬取,是指定的到很多的網爬取一些重要的資訊。然後,進行資訊對比,從而得到正確的答案。
不得不承認,baidu是搜尋引擎是超一流的,某猜測,或者說肯定,baidu的搜尋一定存在著爬取技術。