1. 程式人生 > >Python:網路爬蟲

Python:網路爬蟲

網路爬蟲,爬取某網站的某個網頁的所有圖片。

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的搜尋一定存在著爬取技術。