我用python爬取了整個鬥圖網站,不服來鬥

QQ、微信鬥圖總是鬥不過,索性直接來爬鬥圖網,我有整個網站的圖,不服來鬥。

廢話不多說,選取的網站為鬥圖啦,我們先簡單來看一下網站的結構

網頁信息

我用python爬取了整個鬥圖網站,不服來鬥

注意:很多人學Python過程中會遇到各種煩惱問題,沒有人解答容易放棄。為此我建了個python學習資源群裡面有最新學習資料,如果你想學python,可以關注我,後臺私信我 ‘py’ 自動獲取最新python教程資料!還有老司機解答哦!
從上面這張圖我們可以看出,一頁有多套圖,這個時候我們就要想怎麼把每一套圖分開存放(後邊具體解釋)

通過分析,所有信息在頁面中都可以拿到,我們就不考慮異步加載,那麼要考慮的就是分頁問題了,通過點擊不同的頁面,很容易看清楚分頁規則

我用python爬取了整個鬥圖網站,不服來鬥

很容易明白分頁URL的構造,圖片鏈接都在源碼中,就不做具體說明了明白了這個之後就可以去寫代碼抓圖片了

存圖片的思路

因為要把每一套圖存入一個文件夾中(os模塊),文件夾的命名我就以每一套圖的URL的最後的幾位數字命名,然後文件從文件路徑分隔出最後一個字段命名,具體看下邊的截圖。

我用python爬取了整個鬥圖網站,不服來鬥

這些搞明白之後,接下來就是代碼了(可以參考我的解析思路,只獲取了30頁作為測試)全部源碼

<code># -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
import os
class doutuSpider(object):
headers = {
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"}
def get_url(self,url):
data = requests.get(url, headers=self.headers)
soup = BeautifulSoup(data.content,'lxml')
totals = soup.findAll("a", {"class": "list-group-item"})
for one in totals:
sub_url = one.get('href')
global path
path = 'J:\\\\train\\\\image'+'\\\\'+sub_url.split('/')[-1]
os.mkdir(path)
try:
self.get_img_url(sub_url)
except:
pass

def get_img_url(self,url):
data = requests.get(url,headers = self.headers)
soup = BeautifulSoup(data.content, 'lxml')
totals = soup.find_all('div',{'class':'artile_des'})
for one in totals:
img = one.find('img')
try:
sub_url = img.get('src')
except:
pass
finally:
urls = 'http:' + sub_url
try:
self.get_img(urls)
except:
pass
def get_img(self,url):
filename = url.split('/')[-1]
global path
img_path = path+'\\\\'+filename
img = requests.get(url,headers=self.headers)

try:
with open(img_path,'wb') as f:
f.write(img.content)
except:
pass
def create(self):
for count in range(1, 31):
url = 'https://www.doutula.com/article/list/?page={}'.format(count)
print '開始下載第{}頁'.format(count)
self.get_url(url)
if __name__ == '__main__':
doutu = doutuSpider()
doutu.create()
複製代碼/<code>

結果

我用python爬取了整個鬥圖網站,不服來鬥

我用python爬取了整個鬥圖網站,不服來鬥

我用python爬取了整個鬥圖網站,不服來鬥

總結

很多人學Python過程中會遇到各種煩惱問題,沒有人解答容易放棄。為此我建了個python學習資源群裡面有最新學習資料,如果你想學python,可以關注我,後臺私信我 ‘py’ 自動獲取最新python教程資料!還有老司機解答哦!

本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。


分享到:


相關文章: