0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過分析ajax中信息爬取圖片

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-23 17:00 ? 次閱讀

通過本案例解析ajax請求返回的信息下載圖片

爬取url地址:https://pic.sogou.com/pics?query=動物

分析:

分析url地址:每頁25條數(shù)據,共計10頁

第1頁:https://pic.sogou.com/napi/pc/searchList?mode=1&start=0&xml_len=48&query=動物
第2頁:https://pic.sogou.com/napi/pc/searchList?mode=1&start=48&xml_len=48&query=動物
第3頁:https://pic.sogou.com/napi/pc/searchList?mode=1&start=96&xml_len=48&query=動物

通過分析得出請求改變start參數(shù)就可以改變頁數(shù)

具體實現(xiàn)代碼:

import requests
import os

class ImageSougou(object):
   url = 'https://pic.sogou.com/napi/pc/searchList'
   save_dir = './sougou' # 文件保存的路徑
   count = 0
   # 初始化
   def __init__(self, word):
       self.word = word
       self.dir_path = os.path.join(self.save_dir, word)
       self.params = {
           'query': word,
           'mode': '1',
           'start': '0',
           'xml_len': 48,
       }
       self.headers = {
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
       }
       # 創(chuàng)建保存圖片的文件夾
       self.folder_exist(self.dir_path)
       self.last_img_url = ''
       self.current_page = 0
   
   # 請求包含圖片url的網頁
   def parse(self):
       while True:
           self.params['start'] = str(self.current_page*48)
           response = requests.get(url=self.url, headers=self.headers, params=self.params)
           response.encoding='utf8'
           data = response.json()['data']['items']
           if data:
               for img_info in data:
                   img_url = img_info['picUrl']
                   self.download(img_url)
               self.current_page += 1
           else:
               break
   # 下載一張圖片
   def download(self, img_url, img_type='jpg'):
       self.count += 1
       print('正在下載第%d張圖片...'%self.count, img_url)
       try:
           response = requests.get(img_url)
       except Exception as e:
           print('下載失敗:', img_url)
           return None
       img_name = img_url.split('/')[-1]
       img_path = os.path.join(self.dir_path, img_name)
       try:
           with open(img_path, 'wb') as f:
               f.write(response.content)
       except Exception as e:
           print('下載失敗:', img_url)
   def folder_exist(self, dir_path):
       '''
       1. 作用:判斷文件夾路徑是否存在,不存在則創(chuàng)建
       2. 參數(shù):dir_path:文件夾路徑
       3. 返回值:None
       '''
       if not os.path.exists(dir_path):
           os.makedirs(dir_path)
if __name__ == '__main__':
   image = ImageSougou('動物')
   image.parse()

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關注

    關注

    55

    文章

    4767

    瀏覽量

    84375
  • 爬蟲
    +關注

    關注

    0

    文章

    82

    瀏覽量

    6813
收藏 人收藏

    評論

    相關推薦

    電距離和電氣間隙計算

    電距離和電氣間隙計算
    發(fā)表于 10-21 10:51 ?3次下載

    TPA3110D2如何設置通過分壓設置PLIMT呢?

    TPA3110D2的TINA模型,未找到GVDD,該如何設置通過分壓設置PLIMT呢
    發(fā)表于 09-29 07:49

    PCB設計中的電距離:確保電路板安全可靠

    一站式PCBA智造廠家今天為大家講講什么是PCB設計電距離?PCB設計電距離的重要性。在電子制造業(yè)中,PCB設計是至關重要的一環(huán)。而在PCB設計中,電距離是一個關鍵概念,直接關系到電路板
    的頭像 發(fā)表于 09-26 09:39 ?290次閱讀

    如何理解PCB設計的電距離?

    一站式PCBA智造廠家今天為大家講講PCB設計電距離要求與走線規(guī)則有哪些?PCB設計電距離要求與走線規(guī)則。在PCB設計中,電距離和走線規(guī)則是關鍵的考慮因素,尤其是在高壓電路和高頻電路的設計中
    的頭像 發(fā)表于 08-15 09:23 ?792次閱讀

    QFN錫不好如何解決?—SMT錫膏

    QFN封裝的芯片IC,側面引腳錫是個大難題,經常會遇到一些客戶反饋:qfn錫不好怎么解決?qfn芯片引腳標準上錫高度如何確定?qfn側面不錫?下面由深圳佳金源錫膏廠家來講解一下:一、QFN錫膏
    的頭像 發(fā)表于 07-17 16:07 ?738次閱讀
    QFN<b class='flag-5'>爬</b>錫不好如何解決?—SMT錫膏

    電距離是根據什么確定的

    電距離(Creepage Distance)是指在電氣設備中,兩個導體之間沿絕緣材料表面的距離。它是一個重要的電氣參數(shù),用于評估電氣設備在正常工作和故障條件下的絕緣性能。電距離的確定涉及到多個
    的頭像 發(fā)表于 07-12 15:39 ?685次閱讀

    電距離用什么檢測設備

    電距離是指在電氣設備中,不同電位的導體之間,通過絕緣材料隔離的最短距離。電距離的檢測對于確保電氣設備的安全運行至關重要。本文將介紹電距離的檢測設備及其使用方法。 一、
    的頭像 發(fā)表于 07-12 15:37 ?466次閱讀

    電距離與電壓的對應關系

    電距離(Creepage Distance)是電氣設備中的一個重要概念,它指的是在絕緣材料表面,沿著絕緣體表面或邊緣,從帶電部分到接地部分或不同電位部分之間的最短距離。電距離的大小直接影響
    的頭像 發(fā)表于 07-12 15:35 ?2245次閱讀

    通過視頻幀提取及批量模轉換實現(xiàn)基于STC32的點陣LED動畫播放

    通過視頻幀提取及批量模轉換實現(xiàn)基于STC32的點陣LED動畫播放
    的頭像 發(fā)表于 06-27 02:16 ?330次閱讀
    <b class='flag-5'>通過</b>視頻幀提取及批量<b class='flag-5'>取</b>模轉換實現(xiàn)基于STC32的點陣LED動畫播放

    視覺分析中,二值化與灰度圖片的數(shù)據傳導問題

    求助大佬,視覺分析中,需要做Profile分析,如圖,怎么讓Profile以灰度圖片分析。(圖中是以二值化圖片做的
    發(fā)表于 04-08 17:26

    pcb的電距離之解決方案大全

    pcb的電距離之解決方案大全
    的頭像 發(fā)表于 03-14 15:26 ?1455次閱讀

    鴻蒙開發(fā)教學-圖片的引用

    該接口通過圖片數(shù)據源獲取圖片,支持本地圖片和網絡圖片的渲染展示。其中,src是圖片的數(shù)據源。
    的頭像 發(fā)表于 02-01 17:36 ?622次閱讀
    鴻蒙開發(fā)教學-<b class='flag-5'>圖片</b>的引用

    鴻蒙HarmonyOS引用圖片的方法

    前言 Image通過調用接口來創(chuàng)建,接口調用形式如下: ? Image(src: string | Resource | media.PixelMap) ? 該接口通過圖片數(shù)據源獲取圖片
    的頭像 發(fā)表于 02-01 14:35 ?923次閱讀
    鴻蒙HarmonyOS引用<b class='flag-5'>圖片</b>的方法

    電距離和電氣間隙的區(qū)別

    電距離和電氣間隙的區(qū)別? 電距離和電氣間隙是電力系統(tǒng)中兩個重要的概念,它們在電力設備的設計、運行和維護中起著關鍵的作用。本文將詳細解釋這兩個概念的含義、區(qū)別以及它們在電力系統(tǒng)中的應用。 首先
    的頭像 發(fā)表于 12-08 10:26 ?2368次閱讀

    什么是電氣間隙,什么是電距離,PCB為什么要開槽?

    什么是電氣間隙,什么是電距離,PCB為什么要開槽? 電氣間隙是指在電氣設備或電路中,兩個相鄰的電極之間的最短距離。它主要用于防止因電氣設備或電路元件之間的電荷遷移而引起的電氣擊穿。電氣間隙的大小
    的頭像 發(fā)表于 12-07 13:53 ?3979次閱讀