python爬取網圖
最近在和一個朋友研究爬蟲,我和他每人負責一個網站的圖片爬取,以下是我負責的網站爬取的code,他的code的文章連結是
https://blog.csdn.net/qq_39305249/article/details/102628783
我的多執行緒爬取cosplay圖片的連結是
https://blog.csdn.net/qq_45026221
import requests
from bs4 import BeautifulSoup
import time
import os
def get_main_urls(headers):
urls = []
for i in range(233):
res = requests.get('https://www.mzitu.com/' + '/page/' + str(i+1), headers=headers)
soup = BeautifulSoup(res.text, 'lxml')
list = soup.find(class_='postlist').find_all('li')
for item in list:
url = item.find('a').get('href')
with open('r.txt', 'a') as f:
f.write(url + ',')
def get_pics_urls(url, headers):
global pic_urls
res2 = requests.get(url, headers=headers)
soup2 = BeautifulSoup(res2.text, 'lxml')
total = soup2.find(class_='pagenavi').find_all('a')[-2].find('span').string
title = soup2.find(class_='main-title').string
index = 1
file_folder = title
folder = 'images/' + file_folder + '/'
if os.path.exists(folder) == False:
os.makedirs(folder)
for i in range(int(total)):
res3 = requests.get(url + '/' + str(i+1), headers=headers)
soup3 = BeautifulSoup(res3.text, 'lxml')
pic_url = soup3.find('img').get('src')
print('downloading......' + title + 'NO.' + str(index))
filename = folder + str(index) + '.jpg'
with open(filename, 'wb') as f:
img = requests.get(pic_url, headers=headers).content
f.write(img)
index += 1
print('當前圖集下載完成')
if __name__ == '__main__':
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) App'
'leWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.'
'3865.120 Safari/537.36',
'Referer': 'https://www.mzitu.com/'
}
pic_urls = []
i = 1
print("程式於 {} 開始啟動,請等待...".format(time.ctime()))
# get_main_urls(headers)
with open('r.txt', 'r') as f:
urls = f.read().split(',')
for url in urls:
print('正在下載第' + str(i) + '個圖集,共5574個圖集')
get_pics_urls(url, headers)
i += 1
需要說明的是這個網站會在你requests多次之後遮蔽你的ip以致於爬到一半會中斷,我辛辛苦苦爬的h圖難道就這樣沒了?
我想到一個解決辦法,先requests網站把雖有的圖集的連結都儲存在r.txt中,然後直接從檔案中讀取,供後面的爬取與下載,這樣減少了很多次的requests,ip不會被遮蔽,程式碼中get_main_urls函式用與獲取檔案中的urls,在程式碼中已經不用執行這個函式,直接讀取r.txt獲取urls即可。
如果想自己生成r.txt,則將程式碼倒數第7行get_main_urls(headers)前的# 刪掉,但被爬取的網站大部分情況下會發現你requests多次會遮蔽你的ip一段時間。
r.txt的百度雲連結已附上
連結:https://pan.baidu.com/s/1YMG-c9NJTm8b9Aq0BerCKw
提取碼:iycf
相關文章
- Python爬蟲—爬取某網站圖片Python爬蟲網站
- 教你用Python爬取圖蟲網Python
- python如何爬取動漫截圖網Python
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- Python應用開發——爬取網頁圖片Python網頁
- Python爬蟲入門教程 2-100 妹子圖網站爬取Python爬蟲網站
- Python爬蟲入門【9】:圖蟲網多執行緒爬取Python爬蟲執行緒
- node:爬蟲爬取網頁圖片爬蟲網頁
- 利用Python爬取攝影網站圖片,切勿商用Python網站
- 網路爬蟲---從千圖網爬取圖片到本地爬蟲
- Python網路爬蟲2 - 爬取新浪微博使用者圖片Python爬蟲
- Python爬蟲入門【4】:美空網未登入圖片爬取Python爬蟲
- 爬蟲Selenium+PhantomJS爬取動態網站圖片資訊(Python)爬蟲JS網站Python
- Python資料爬蟲學習筆記(11)爬取千圖網圖片資料Python爬蟲筆記
- 關於python爬取網頁Python網頁
- Python爬蟲入門【5】:27270圖片爬取Python爬蟲
- 【Python爬蟲】正則爬取趕集網Python爬蟲
- python例項,python網路爬蟲爬取大學排名!Python爬蟲
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- 爬取愛套圖網上的圖片
- python網路爬蟲--爬取淘寶聯盟Python爬蟲
- 教你用Python爬取妹子圖APPPythonAPP
- Python《必應bing桌面圖片爬取》Python
- Python爬取噹噹網APP資料PythonAPP
- 使用 Python 爬取網站資料Python網站
- python爬取網頁詳細教程Python網頁
- Node JS爬蟲:爬取瀑布流網頁高清圖JS爬蟲網頁
- Python爬蟲入門【11】:半次元COS圖爬取Python爬蟲
- Python爬蟲新手教程: 知乎文章圖片爬取器Python爬蟲
- Python爬蟲遞迴呼叫爬取動漫美女圖片Python爬蟲遞迴
- 【python--爬蟲】千圖網高清背景圖片爬蟲Python爬蟲
- Python爬蟲入門教程 4-100 美空網未登入圖片爬取Python爬蟲
- Python爬蟲實踐--爬取網易雲音樂Python爬蟲
- 用PYTHON爬蟲簡單爬取網路小說Python爬蟲
- JB的Python之旅-爬取phizhub網站Python網站
- 如何使用python進行網頁爬取?Python網頁
- 【python--爬蟲】彼岸圖網高清桌布爬蟲Python爬蟲
- 如何用Python網路爬蟲爬取網易雲音樂歌曲Python爬蟲