爬取糗事百科1到5頁的圖片並下載到本地
阿新 • • 發佈:2019-04-05
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頁的圖片並下載到本地