1. 程式人生 > 實用技巧 >拓展python爬蟲,男生都喜歡的爬蟲案例!

拓展python爬蟲,男生都喜歡的爬蟲案例!

爬蟲爬取圖片的簡單例項

這裡以圖片之家為例

首先分析網頁
每一頁與每一頁之間只是list_176_後面的數字不同,所以我們可以根據不同的需求來進行翻頁


圖片的定位:
小編這裡使用的是xpath來進行的定位,比較簡單,適合新手


在谷歌瀏覽器中選中其src中的地址右鍵copy其xpath直接定位到該圖片的定位

分析完後就可以寫python程式碼了

import requests
from lxml import etree

p = 1
print("請輸入爬取的頁數:")
num = int(input())
for i in range(num+1):
    if i != 0:
        url = f'https://www.tupianzj.com/meinv/xinggan/list_176_{i}.html'

        # 偽裝請求頭
        header = {
            "user-agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"
        }
        # 傳送請求
        respons = requests.get(url, headers=header)

        # 檢視返回結果  content返回時時byte 需要手動轉碼
        html = respons.content
        html = html.decode("gb2312")
        # print(html)

        # 呼叫lxml中的etree方法
        txt = etree.HTML(html)
        src = txt.xpath('//*[@id="container"]/div/div/div[3]/div/ul/li/a/@href')
        # print(src)
        for k in src:
            # print(k[:-5])
            p2 = 1
            for j in range(1,11):
                # 拼接新的網址
                page = 'https://www.tupianzj.com' + k[:-5] + f"_{j}.html"
                # print(page)
                # 重新發送請求
                imgdata = requests.get(page,headers=header)
                # 檢視返回結果 並解碼
                html1 = imgdata.content
                try:
                    html1 = html1.decode('gb2312')

                    txt1 = etree.HTML(html1)

                    xsrc = txt1.xpath('//*[@id="bigpicimg"]/@src')
                except:
                    pass
                if len(xsrc) == 0:
                    continue
                print(xsrc[0])
                imgdata2 = requests.get(xsrc[0],headers=header)
                #  圖片另存為
                f = open('./img/'+str(p)+'.'+str(p2)+xsrc[0][-4:], 'wb')
                #  寫入
                f.write(imgdata2.content)
                f.close()
                p2 += 1
            p += 1

執行時需要在當前資料夾下建立一個img資料夾

這是執行結果:

原始碼獲取加群哦:1136192749