【Python爬蟲】採集一個優秀藝術家相互交流的網站——P站(一個正經的網站)
阿新 • • 發佈:2021-11-10
前言
總所周知, p站是日本知名的虛擬社群, 聚集了眾多來自日本, 中國, 韓國, 美國等國家的優秀藝術家。他們在p站上相互交流, 分享高清優秀插畫, 是一個正經的網站
點選領取【程式碼】【相關教程、資料】,或者對於本篇文章有疑問的同學可以私信我
環境介紹
- python 3.8 – anaconda 安裝了一些模組 / 自動的 配置環境變數
- pycharm 2021專業版 >>> 啟用碼
- requests >>> pip install requests
- parsel >>> pip install parsel
開始程式碼
首先需要匯入模組
import requests # 傳送網路請求的模組 import parsel # 提取資料 import re
傳送請求
url_1 = 'https://www.acg-pixiv.com/tags/450.html' response_1 = requests.get(url_1)
獲取資料
data_html_1 = response_1.text
提取資料
selector = parsel.Selector(data_html_1) # 提取連結 屬性內容 @屬性名稱 css xpath rehref_list = selector.xpath('/html/body/div/div[1]/ul/li/a/@href').getall() title_list = selector.xpath('/html/body/div/div[1]/ul/li/a/@title').getall()
詳情頁連結
for info in zip(href_list, title_list): # 索引取值 元組 url_2 = 'https://www.acg-pixiv.com' + info[1]
每一個詳情頁的網頁原始碼
# content? 獲取二進位制資料 response_2 = requests.get(url_2).text
提取詳情頁中的圖片連結
selector_2 = parsel.Selector(response_2) # 圖片連結 url = selector_2.xpath('/html/body/div/div[1]/div[1]/div/img[1]/@src').get() print(url)
圖片連結
# 當這個程式報錯的時候 try: img_data = requests.get(img_url, timeout=5).content except: # 圖片連結改一下 img_url = img_url.replace('800', '400') img_data = requests.get(img_url).content
替換特殊字元
title = re.sub(r'[\\/:*?"<>|]', '_', info[1])
儲存資料
print(f'---------正在爬取{title}---------') with open(f'img/{title}.jpg', mode='wb') as f: f.write(img_data)