爬取桌面网
?
本人很喜歡高達,于是乎在網上找了高達的圖片
?
這個網站不讓右鍵保存圖片,只能一張一張點開然后點下載
于是開始爬:
首先濾清思路
?
'''1: 分析:圖片發現圖片在
https://up.enterdesk.com/edpic_source/87/9f/d0/879fd07ff61db705c7351a5e4feaa672.jpg
https://up.enterdesk.com/edpic_source/78/c5/64/78c564e2856a6c4b5d0b1823350918e7.jpg
https://up.enterdesk.com/edpic_source/3a/28/07/3a2807b5cf0de9f3ee0c33360965f477.jpg
所有的圖片都在https://up.enterdesk.com/edpic_source/xxxxxxxx中.jpg
2: 分析網頁:獲取圖片的url # 就他喵的10個圖片
3: 將獲取的url 放在列表中,循環列表,獲取相應給0.5秒反應時間,.獲取圖片存入在文件夾
'''
1:
通過觀察
?
可以得知圖片的url 的位置
先獲取響應:
利用re模塊獲取
?
def get_urls(self,staus_url): #獲取url地址,參數提供基本網頁參數res =requests.get(staus_url,headers =self.header) # 獲取相應piace_url =res.textpanent =re.compile('<img src="(.*?)" title="機動戰士高達" /></a></div>',re.S)text =re.findall(panent,piace_url)self.get_url_list.append(text)l=self.clean_text(self.get_url_list)self.get_url_list =lreturn self.get_url_list?
2:
下載每個圖片
def get_piace(self,num,url):res = requests.get(url,headers =self.header)connect =res.contentwith open('f:/piace/'+str(num)+'.jpg','wb') as f:f.write(connect)print('高達圖片'+str(num)+'寫入成功')3:
得知有高清圖片后,分析網頁找到規律,清晰圖片
?
def clean_text(self,list):new_list =[]for url in list[0]:url =url.replace('edpic_360_360','edpic_source')new_list.append(url)return new_list?
4:
保存圖片
整體代碼
# -*- coding: utf-8 -*- # @Time : 2018/12/31 16:29 # @Author : Endless-cloud # @Site : # @File : 爬取高達圖片.py # @Software: PyCharm import requests import re from bs4 import BeautifulSoup import time import os import _md5 ''' 1: 分析:圖片發現圖片在https://up.enterdesk.com/edpic_source/87/9f/d0/879fd07ff61db705c7351a5e4feaa672.jpghttps://up.enterdesk.com/edpic_source/78/c5/64/78c564e2856a6c4b5d0b1823350918e7.jpghttps://up.enterdesk.com/edpic_source/3a/28/07/3a2807b5cf0de9f3ee0c33360965f477.jpg 所有的圖片都在https://up.enterdesk.com/edpic_source/xxxxxxxx中.jpg 2: 分析網頁:獲取圖片的url # 就他喵的10個圖片 3: 將獲取的url 放在列表中,循環列表,獲取相應給0.5秒反應時間,.獲取圖片存入在文件夾 文件名字以md5加密輸出''' class gaoda_speader(object):def __init__(self): #基本信息self.get_url_list =[] # 存放獲取到的url地址self.header ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' }self.num = len(self.get_url_list) #存放獲取到的圖片總數.以便于起名字def get_urls(self,staus_url): #獲取url地址,參數提供基本網頁參數res =requests.get(staus_url,headers =self.header) # 獲取相應piace_url =res.textpanent =re.compile('<img src="(.*?)" title="機動戰士高達" /></a></div>',re.S)text =re.findall(panent,piace_url)self.get_url_list.append(text)l=self.clean_text(self.get_url_list)self.get_url_list =lreturn self.get_url_listdef clean_text(self,list):new_list =[]for url in list[0]:url =url.replace('edpic_360_360','edpic_source')new_list.append(url)return new_listdef get_piace(self,num,url):res = requests.get(url,headers =self.header)connect =res.contentwith open('f:/piace/'+str(num)+'.jpg','wb') as f:f.write(connect)print('高達圖片'+str(num)+'寫入成功')def go_run(self):staus ='https://www.enterdesk.com/bizhi/4973-48230.html'self.get_urls(staus)# print(self.get_url_list)for i in self.get_url_list:self.get_piace(self.num,i)self.num+=1if __name__ == '__main__':gaoda_speader=gaoda_speader()gaoda_speader.go_run()print('保存成功')圖片很大,最好用線程下載,等線程用的比較清晰后,在出線程版本(...大概用過幾次,..感覺不難.不過最好
jia上time模塊,和ip代理,這樣可以 避免被封)
?
轉載于:https://www.cnblogs.com/baili-luoyun/p/10202656.html
總結
- 上一篇: Dynamic Rankings——带修
- 下一篇: [Java in NetBeans] L