欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python協程gevent案例 爬取斗魚圖片過程解析

系統 1613 0

分析

分析網站尋找需要的網址

用谷歌瀏覽器摁F12打開開發者工具,然后打開斗魚顏值分類的頁面,如圖:

python協程gevent案例 爬取斗魚圖片過程解析_第1張圖片

在里面的請求中,最后發現它是以ajax加載的數據,數據格式為json,如圖:

python協程gevent案例 爬取斗魚圖片過程解析_第2張圖片

圈住的部分是我們需要的數據,然后復制它的網址為https://www.douyu.com/gapi/rknc/directory/yzRec/1,出于學習目的只爬取第一頁(減少服務器壓力)。然后把網址放到瀏覽器中測試是否可以訪問。如圖:

python協程gevent案例 爬取斗魚圖片過程解析_第3張圖片

結果正常。

分析json數據,提取圖片鏈接

最后分析發現json中的data里面的rl是每個房間的信息,大概有200條左右,拿出其中的一條查詢里面的圖片鏈接。

            
{
        "rid": 1282190,
        "rn": "大家要開心啊~",
        "uid": 77538371,
        "nn": "鯨魚歐尼",
        "cid1": 8,
        "cid2": 201,
        "cid3": 581,
        "iv": 1,
        "av": "avatar_v3/201908/d62c503c603945098f2c22d0d95c3b2e",
        "ol": 610574,
        "url": "/1282190",
        "c2url": "/directory/game/yz",
        "c2name": "顏值",
        "icdata": {
          "217": {
            "url": "https://sta-op.douyucdn.cn/dy-listicon/king-web.png-v3.png",
            "w": 0,
            "h": 0
          }
        },
        "dot": 2103,
        "subrt": 0,
        "topid": 0,
        "bid": 0,
        "gldid": 0,
        "rs1": "https://rpic.douyucdn.cn/live-cover/appCovers/2019/08/01/1282190_20190801002745_big.jpg/dy1",
        "rs16": "https://rpic.douyucdn.cn/live-cover/appCovers/2019/08/01/1282190_20190801002745_small.jpg/dy1",
        "utag": [
          {
            "name": "呆萌鯨魚",
            "id": 111405
          },
          {
            "name": "美美美",
            "id": 41
          },
          {
            "name": "萌萌噠",
            "id": 520
          },
          {
            "name": "刀神老婆",
            "id": 132367
          }
        ],
        "rpos": 0,
        "rgrpt": 1,
        "rkic": "",
        "rt": 2103,
        "ot": 0,
        "clis": 1,
        "chanid": 0,
        "icv1": [
          [
            {
              "id": 217,
              "url": "https://sta-op.douyucdn.cn/dy-listicon/web-king-1-10-v3.png",
              "score": 994,
              "w": 0,
              "h": 0
            }
          ],
          [
            
          ],
          [
            
          ],
          [
            
          ]
        ],
        "ioa": 0,
        "od": ""
      }
          

測試發現rs16是房間的圖片,如果把鏈接最后的/dy1去掉的話,圖片就成大圖了,心里美滋滋。

代碼實現

            
import gevent
import json
from urllib import request
from gevent import monkey
# 使用gevent打補丁,耗時操作自動替換成gevent提供的模塊
monkey.patch_all()
# 圖片存放的目錄
ROOT = "./images/"
# 設置請求頭,防止被反爬蟲的第一步
header = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 "
}


def download(img_src):
  # 把每個鏈接最后的/dy1去掉
  img_src: str = img_src.replace("/dy1", "")
  # 提取圖片名
  file_name: str = img_src.split("/")[-1]
  response = request.urlopen(request.Request(img_src, headers=header))
  # 保存到本地
  with open(ROOT + file_name, "wb") as f:
    f.write(response.read())
  print(file_name, "下載完成!")
if __name__ == '__main__':

  req = request.Request("https://www.douyu.com/gapi/rknc/directory/yzRec/1", headers=header)
  # 把json數據轉換成python中的字典
  json_obj = json.loads(request.urlopen(req).read().decode("utf-8"))
  tasks = []
  for src in json_obj["data"]["rl"]:
    tasks.append(gevent.spawn(download, src["rs16"]))
  # 開始下載圖片
  gevent.joinall(tasks)
          

結果

由于使用的是協程,比線程效率更高,不到1秒就把第一頁的圖片全部爬取下來了。效果如圖:

python協程gevent案例 爬取斗魚圖片過程解析_第4張圖片

此案例僅用于學習gevent的使用。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 不卡国产一区二区三区四区 | 日韩影音 | www成人在线观看 | 插入综合网 | 污污的网站免费观看 | 色喜亚洲美女沟沟炮交国模 | 国产黄色网址在线观看 | 黄视频网站免费看 | 国产va免费精品观看精品 | 日本欧美一区二区三区不卡视频 | 午夜精品一区二区三区在线视频 | 日本高清不卡在线 | 日本道专区无码中文字幕 | 欧美日韩一区二区三区视频播 | 一级毛片一级毛片一级毛片 | 日韩欧美一区二区三区四区 | 久久久国产一区二区三区 | 亚洲女人天堂 | 中国欧美日韩一区二区三区 | 成人午夜网站 | 成人涩涩屋福利视频 | 亚洲综合色丁香婷婷六月图片 | 一区二区三区四区国产 | 亚洲人和日本人jizz | 亚洲久久久 | av网站免费观看 | 懂色中文一区二区三区在线视频 | 国产精品福利资源在线 | 欧美精品欧美极品欧美激情 | 一区二区三区在线 | 国产精品国产精品国产专区不卡 | 五月天欧美激情午夜情 | 奇米影视亚洲四色8888 | 婷婷六月综合 | 日韩视频在线播放 | 久久免费福利 | 日本AAAA片毛片免费观 | 新封神榜杨戬电影免费动画在线观看国语 | 一级毛片免费观看不收费 | 久久亚洲日本不卡一区二区 | 蜜桃视频一区二区三区 |