1. 程式人生 > >爬取糗事百科1到5頁的圖片並下載到本地

爬取糗事百科1到5頁的圖片並下載到本地

safari pre url height 入參 取圖 參數 user 使用

思路如下:

首先找到圖片的節點

<div class="thumb">

<a href="/article/121672165" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/12167/121672165/medium/NTDNQY3EJKUSRZ2X.jpg" alt="糗事#121672165" class="illustration" width="100%" height="auto">
</a>
</div>

找到爬取頁面的url

https://www.qiushibaike.com/imgrank/

發起請求拿到響應,略

使用正則表達式來獲取圖片的src

re.compile(‘<div class="thumb">.*?<img src="(.*?)>".*?</div>‘, re.S)

最後持久化寫入文件。

具體代碼如下:

import requests
import re
import os

url = "https://www.qiushibaike.com/imgrank/page/"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
}

pattern = re.compile(‘<div class="thumb">.*?<img src="(.*?)".*?>.*?</div>‘, re.S)

if not os.path.exists("./imgs"):
    os.mkdir("imgs")

# 觀察糗事百科的分頁url,不需要傳入參數
for page in range(1, 6):
    # 直接更新url切換頁面
    new_url = url + "%s/" % page
    response = requests.get(url=new_url, headers=headers)
    page_text = response.text
    # 拿到所有圖片的鏈接列表
    list_img = pattern.findall(page_text)

    # 持久化存儲
    page_path = "pages%s/" % page
    os.mkdir("imgs/%s" % page_path)

    for my_url in list_img:
        # 將圖片url補充完整
        url_img = "https:" + my_url
        print(url_img)
        # 拿到圖片的二進制文件
        data_img = requests.get(url=url_img, headers=headers).content
        # 圖片的名稱
        name_img = my_url.split("/")[-1]
        print(name_img)
        # 寫入到本地的文件的路徑
        path_img = "imgs/" + page_path + name_img
        print(path_img)
        with open(path_img, "wb") as fp:
            fp.write(data_img)

 
 

爬取糗事百科1到5頁的圖片並下載到本地