第二彈!python爬蟲批量下載高清大圖

      網友投稿 1269 2022-05-30

      文章目錄

      前言

      下載免費高清大圖

      下載帶水印的精選圖

      代碼與總結

      前言

      在上一篇寫文章沒高質量配圖?Python爬蟲繞過限制一鍵搜索下載圖蟲創意圖片!中,我們在未登錄的情況下實現了圖蟲創意無水印高清小圖的批量下載。雖然小圖能夠在一些移動端可能展示的還行,但是放到pc端展示圖片太小效果真的是很一般!建議閱讀本文查看上一篇文章,在具體實現不做太多介紹,只講個分析思路。

      當然,本文可能技術要求不是特別高,但可以當作一個下圖工具使用。

      環境:python3+pycharm+requests+re+BeatifulSoup+json

      這個確實也屬實有一些勉強,不少童鞋私信問我有木有下載大圖的源碼,我說可能會有,現在分享給大家。

      當然對于一個圖片平臺來說,高質量圖片下載可能是其核心業務,并且我看了以下,那些高質量大圖下載起來很貴!所以筆者并沒有嘗試付費下載然后查看大圖的地址,因為這個可以猜想成功率很低,并且成本比較高,退而求其次,筆者采取以下幾種方法。

      對圖蟲平臺初步分析之后,得到以下觀點:

      原版高質量無水印圖片下載太貴,由于沒付費下載沒有找到高質量圖的高清無水印原圖真實地址。沒有辦法(能力) 下載原版高清無水印。并且筆者也能猜測這個是一個網站的核心業務肯定也會層層設套。不會輕易獲得,所以并沒有對付費高清高質量無水印圖片窮追不舍。

      但是高質量展示圖在預覽時候的是可以查看帶有水印的高清圖的(帶著圖蟲創意水印)。

      網站有一些免費的高清大圖圖片可以獲取到。雖然這個不是精選圖,但是質量也還可以!

      下載免費高清大圖

      在圖蟲創意有個板塊的圖片是免費開放的。在共享圖片專欄。的圖片可以搜索下載。

      https://stock.tuchong.com/topic?topicId=37 圖蟲創意url地址

      找到一張圖片點進去,檢查地址你可以直接訪問得到。而有相關因素的就是一個圖片服務器域名+圖片id組成的圖片url地址。也就是我們要批量找到這些圖片的id。

      在搜索界面查看源碼,發現這個和前面的分析如出一轍,它的圖片id藏在js里面。我們只需通過正則解析。拿到id然后拼湊url即可完成所有圖片地址,這個解析方式和上文基本完全一致,只不過是瀏覽器的URL和js的位置有相對的變化只需小量修改,然后直接爬蟲下載保存即可!而這個搜索html的url就是https://stock.tuchong.com/free/search/?term=+搜索內容。這個下載內容的實現在上一篇已經分析過。請自行查看或看下文代碼!這樣

      下載帶水印的精選圖

      好的圖片都在優選圖片專欄。然而這部分圖片我們可以免費獲取帶水印的圖片。

      在登錄賬號之后點開的圖片預覽,當你點開預覽的時候是可以看得到圖片的。每張圖片對應一個唯一ID,這個地址可以獲得但是比較麻煩。我們嘗試能不能獲得一個簡單通用的url地址呢?

      經過嘗試發現這個圖片的url可以在我們上面的免費高清大圖url地址共用!也就是我們可以得到這個ID通過上個url來批量獲取下載圖片!下載圖片的方法一致不需要重復造輪子。而id的獲取方法我們在下載高清小圖就已經詳細介紹過了也是一樣的。那么分析就已經成功了,代碼將在后面給出,這樣我們可以下載帶水印的高清大圖了!

      ##js的解析規則: #---- js=soup.select('script') js=js[3] pattern = re.compile(r'window.hits = (\[)(.*)(\])') va = pattern.search(str(js)).group(2)#解析js內容 #-------

      1

      2

      3

      4

      5

      6

      當然,就配圖而言還是高質量圖的質量高很多,如果可以接受的話可以使用。唯一缺點就是圖創水印。

      代碼與總結

      import requests from urllib import parse from bs4 import BeautifulSoup import re import json header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36', 'Cookie': 'wluuid=66; ', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Accept-encoding': 'gzip, deflate, br', 'Accept-language': 'zh-CN,zh;q=0.9', 'Cache-Control': 'max-age=0', 'connection': 'keep-alive' , 'Host': 'stock.tuchong.com', 'Upgrade-Insecure-Requests': '1' } def mkdir(path): import os# 引入模塊 path = path.strip()# 去除首位空格 path = path.rstrip("\") # 去除尾部 \ 符號 isExists = os.path.exists(path) # 判斷路徑是否存在 # 存在 True # 不存在 False if not isExists: # 判斷結果 os.makedirs(path)# 如果不存在則創建目錄 # 創建目錄操作函數 return True#print (path + ' 創建成功') else: # 如果目錄存在則不創建,并提示目錄已存在 #print(path + ' 目錄已存在') return False def downloadimage(imageid,imgname):##下載大圖和帶水印的高質量大圖 url = 'https://weiliicimg9.pstatp.com/weili/l/'+str(imageid)+'.webp' url2 = 'https://icweiliimg9.pstatp.com/weili/l/'+str(imageid)+'.webp' b=False r = requests.get(url) print(r.status_code) if(r.status_code!=200): r=requests.get(url2) with open(imgname+'.jpg', 'wb') as f: f.write(r.content) print(imgname+" 下載成功") def getText(text,free): texturl = parse.quote(text) url="https://stock.tuchong.com/"+free+"search?term="+texturl+"&use=0" print(url) req=requests.get(url,headers=header) soup=BeautifulSoup(req.text,'lxml') js=soup.select('script') path='' if not free.__eq__(''): js=js[1] path='無水印/' else: js=js[3] path='圖蟲創意/' print(js) pattern = re.compile(r'window.hits = (\[)(.*)(\])') va = pattern.search(str(js)).group(2)#解析js內容 print(va) va = va.replace('{', '{').replace('}', '},,') print(va) va = va.split(',,,') print(va) index = 1 for data in va: try: dict = json.loads(data) print(dict) imgname='img2/'+path+text+'/'+dict['title']+str(index) index+=1 mkdir('img2/'+path+text) imgid=dict['imageId'] downloadimage(imgid,imgname) except Exception as e: print(e) if __name__ == '__main__': num=input("高質量大圖帶水印輸入1,普通不帶水印輸入2:") num=int(num) free='' if num==2: free='free/' text = input('輸入關鍵詞:') getText(text,free)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      第二彈!python爬蟲批量下載高清大圖

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:自定義SCOM性能視圖
      下一篇:【Java】String類字符串的解析
      相關文章
      亚洲精品亚洲人成在线观看下载| 亚洲精品无码久久久久APP | gogo全球高清大胆亚洲| 亚洲一级在线观看| 亚洲精品不卡视频| 亚洲综合一区二区精品久久| 亚洲蜜芽在线精品一区| 亚洲精品高清视频| 亚洲精品免费视频| 久久精品国产亚洲AV嫖农村妇女| 亚洲视频在线观看一区| 91亚洲精品第一综合不卡播放| 亚洲国产精品婷婷久久| 亚洲欧洲日韩不卡| 18gay台湾男同亚洲男同| 亚洲第一区视频在线观看| 亚洲视频在线观看地址| 亚洲av无码av制服另类专区| 亚洲va在线va天堂va四虎| 亚洲精品高清视频| 亚洲国产精品无码专区影院 | 最新亚洲卡一卡二卡三新区| 亚洲日韩精品无码专区加勒比| 亚洲日韩AV一区二区三区中文| 亚洲日产乱码一二三区别| www亚洲精品久久久乳| 亚洲av无码天堂一区二区三区| 亚洲精品无码久久毛片| 亚洲午夜国产精品无码老牛影视| 国产亚洲福利精品一区| 亚洲男人第一av网站| 亚洲国产美女福利直播秀一区二区| 亚洲欧洲日产国产最新| 中文字幕亚洲综合小综合在线| 亚洲国产高清国产拍精品| 亚洲国产激情一区二区三区| 亚洲午夜国产精品无码老牛影视| 亚洲嫩模在线观看| 国产成人亚洲合集青青草原精品 | 久久亚洲成a人片| 亚洲国产成人久久|