網絡爬蟲系列
python網絡爬蟲(一) 爬取網站圖片
python網絡爬蟲(二)分頁爬取圖片
什麼是網絡爬蟲?
網絡爬蟲(Web Spider),又被稱爲網頁蜘蛛,是一種按照一定的規則,自動地抓取網站信息的程序或者腳本。網絡蜘蛛是通過網頁的鏈接地址來尋找網頁,從網站某一個頁面開始,讀取網頁的內容,找到在網頁中的其它鏈接地址,然後通過這些鏈接地址尋找下一個網頁,這樣一直循環下去,直到把這個網站所有的網頁都抓取完爲止。
爬蟲流程
用戶獲取網絡數據的方式:
- 方式1:瀏覽器提交請求—>下載網頁代碼—>解析成頁面
- 方式2:模擬瀏覽器發送請求(獲取網頁代碼)->提取有用的數據->存放於數據庫或文件中,爬蟲要做的就是方式2。
-
發起請求
- 使用request模塊的get、post函數
- 使用url全球統一資源定位符,用來定義互聯網上一個唯一的資源 例如:一張圖片、一個文件、一段視頻都可以用url唯一確定。
- 請求頭User-agent:請求頭中如果沒有user-agent客戶端配置,服務端可能將你當做一個非法用戶host;
- 請求體如果是get方式,請求體沒有內容 (get請求的請求體放在 url後面參數中,直接能看到)
如果是post方式,請求體是format data。
-
網站相響應
- 返回值含義:200爲代表成功,301爲代表跳轉,404爲文件不存在,403爲無權限訪問,502爲服務器錯誤。
利用python request庫爬取網站圖片
- 爬取網站:http://desk.zol.com.cn/dongman/1920x1080/
- 進入網站後右擊審查,查看Elements部分:
- 鼠標移動到一張圖片上,會顯示圖片信息:
我們需要的就是img標籤下的src部分。 - 接下來查看Network部分,選擇Img查看相關信息,得到User-Agent和Referer的信息作爲Headers的一部分:
- 具體代碼見代碼部分。
代碼部分
import requests
import time
from lxml import etree
url = 'http://desk.zol.com.cn/dongman/1920x1080/'
headers = {"Referer":"Referer: http://desk.zol.com.cn/dongman/1920x1080/",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",}
resq = requests.get(url,headers = headers)
print(resq)
html = etree.HTML(resq.text)
srcs = html.xpath(".//img/@src")
for i in srcs:
imgname = i.split('/')[-1]
img = requests.get(i,headers = headers)
with open('imgs1/'+imgname,'wb') as file:
file.write(img.content)
print(i,imgname)
爬取結果
- 顯示爬取的信息
- 在相應文件夾下查看圖片是否爬取成功
可以發現圖片成功爬取了。