爬蟲超級簡單入門


前兩天看到 某個程序猿寫了個爬蟲,然后公司200多人被端, 作為在入門python 的小白, 產生了興趣,於是乎學習了下,寫了一個小爬蟲,做一些入門的抓爬,爬點美女圖片吧 !

let's do it

 

 

 看一眼美女,寫代碼的興致就上來了

爬蟲是通過找到要爬的圖片的url 然后進行下載, 這個url怎么找呢?

寫過網頁的應該都知道, 但是我沒寫過,我們打開網頁后按F12彈出調試工具

 

 選擇network,在左側選擇一個有Request Headers 的

然后可以看到有 Referer, 字面意思是引用, 在此處是用來防止跨域請求,(我的理解是只能通過該網頁,來獲取左側選擇的文件 也就是這個頁面上的元素),一會我們的請求頭要用到

User-Agent: 用戶代理,里面發現有Chrome這個單詞,猜測是瀏覽器,於是換個火狐試了下 里面有Firefox, 這應該是瀏覽器代理  每個瀏覽器不同,我們用這個來偽裝成瀏覽器訪問

headers = {
    'Referer':'https://www.85814.com/meinv/gaotiaomeinv/',
    'User-Agent':'ozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'
}

 

 我們把它放到一個字典中,因為后面類型要求是字典

接着用Request庫連接下網站

import requests
headers = {
    'Referer':'https://www.85814.com/meinv/gaotiaomeinv/',
    'User-Agent':'ozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'
}

url = 'https://www.85814.com/meinv/gaotiaomeinv/'
resp = requests.get(url,headers=headers)
pass

 

 

 

可以看到 Response 為 200  表示連接上了

 

很好

 

下一步我們就要獲取圖片的url了, 點擊開發工具左上角的元素審查,然后點擊一張圖

 

 

 

 

可以看到,img 的alt屬性對於圖的標題, src就是圖片的源地址,可以復制出來,在進入這個網站試試。

多試幾個圖片的話,知道 中間的大圖數據組織方式是一樣的, 我們可以通過一個路徑匹配來查找所有的src

Ctrl+F

 

 下面是一個匹配模式,.//p[@id="l"]   .//p會匹配當前頁面下 所有p標簽  這里用屬性id ="i"限制, 找到主框, 然后雙斜杠 在p[@id="l"]  下面匹配所有的img。 后面/@src 是獲得所有的src 也就是url

上代碼

from lxml import etree
html = etree.HTML(resp.text)
srcs = html.xpath('.//p[@id="l"]//img/@src')

 

得到的srcs是一個 list 只要遍歷這個list 對每一個url 的圖片進行download

for src in srcs:
    time.sleep(0.2)
    filename= src.split('/')[-1]
    img = requests.get(src, headers=headers,timeout=10,verify=False)
    with open( 'imgs/'+ filename,'wb') as file:
        file.write(img.content)

 

用到了time,用來延遲,防止請求過快被服務器認作受到攻擊,之前本人就被一個網站封ip了,  還有很多其他方法, 比如 每次用不同的 User-Agent偽裝成不同的瀏覽器, 還有用代理ip, 之后會提到。

然后在當前目錄創建imgs路徑,  img.context是圖片的內容。

 

 

 

存的是bytes 所以用'wb' 打開。

運行程序 在img下就有很多美女圖片了

 

 

 

一個簡單的爬蟲就完成了。

學習尚淺,有錯誤或不當之處還請指正。

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM