国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

利用python爬取斗魚app中照片方法實例

2020-01-04 16:12:32
字體:
來源:轉載
供稿:網友

前言

沒想到python/272967.html">python是如此強大,令人著迷,以前看見圖片總是一張一張復制粘貼,現在好了,學會python就可以用程序將一張張圖片,保存下來。

最近看到斗魚里的照片都不錯,決定用最新學習的python技術進行爬取,下面將實現的過程分享出來供大家參考,下面話不多說了,來一起看看詳細的介紹吧。

方法如下:

首先下載一個斗魚(不下載也可以,url都在這了對吧)

   通過抓包,抓取到一個json的數據包,得到下面的地址

python爬取app數據,爬取app,python,爬取手機app

  觀察測試可知,通過修改offset值就是相當于app的翻頁

  訪問這個url,返回得到的是一個大字典,字典里面兩個索引,一個error,一個data。而data又是一個長度為20的數組,每個數組又是一個字典。每個字典中又有一個索引,vertical_src。

  我們的目標就是它了!

import urllib.parseimport urllibimport jsonimport urllib.requestdata_info={}data_info['type']='AUTO'data_info['doctype']='json'data_info['xmlVersion']='1.6'data_info['ue']='UTF-8'data_info['typoResult']='true'head_info={}head_info['User-Agent']='DYZB/2.271 (iphone; iOS 9.3.2; Scale/3.00)'url='http://capi.douyucdn.cn/api/v1/getVerticalRoom?aid=ios&client_sys=ios&limit=20&offset=20'data_info=urllib.parse.urlencode(data_info).encode('utf-8')print(data_info)requ=urllib.request.Request(url,data_info)requ.add_header('Referer','http://capi.douyucdn.cn')requ.add_header('User-Agent','DYZB/2.271 (iphone; iOS 9.3.2; Scale/3.00)')response=urllib.request.urlopen(requ)print(response)html=response.read().decode('utf-8')

這短短20多行代碼就能返回得到json數據了。然后再通過對這json代碼的切片,分離得到每個主播照片的url地址。

然后得到這一頁的照片

import jsonimport urllib.requestdata_info={}data_info['type']='AUTO'data_info['doctype']='json'data_info['xmlVersion']='1.6'data_info['ue']='UTF-8'data_info['typoResult']='true'url+str(i)='http://capi.douyucdn.cn/api/v1/getVerticalRoom?aid=ios&client_sys=ios&limit=20&offset='+str(x)data_info=urllib.parse.urlencode(data_info).encode('utf-8')print(data_info)requ=urllib.request.Request(url,data_info)requ.add_header('Referer','http://capi.douyucdn.cn')requ.add_header('User-Agent','DYZB/2.271 (iphone; iOS 9.3.2; Scale/3.00)')response=urllib.request.urlopen(requ)print(response)html=response.read().decode('utf-8')''' print(type(dictionary))print(type(dictionary[data]))'''dictionary=json.loads(html)data_arr=dictionary["data"]for i in range(0,19):  name=data_arr[i]["nickname"]  img_url=data_arr[i]["vertical_src"]  print(type(img_url))  respon_tem=urllib.request.urlopen(img_url)  anchor_img=respon_tem.read()  with open('../photos/'+name+'.jpg','wb') as f:    f.write(anchor_img)

然后修改一下,讓它有了翻頁的功能

import urllib.parseimport urllibimport jsonimport urllib.requestdata_info={}data_info['type']='AUTO'data_info['doctype']='json'data_info['xmlVersion']='1.6'data_info['ue']='UTF-8'data_info['typoResult']='true'data_info=urllib.parse.urlencode(data_info).encode('utf-8')for x in range(0,195):  url='http://capi.douyucdn.cn/api/v1/getVerticalRoom?aid=ios&client_sys=ios&limit=20&offset='+str(x)  print(data_info)  requ=urllib.request.Request(url,data_info)  requ.add_header('Referer','http://capi.douyucdn.cn')  requ.add_header('User-Agent','DYZB/2.271 (iphone; iOS 9.3.2; Scale/3.00)')  response=urllib.request.urlopen(requ)  print(response)  html=response.read().decode('utf-8')  dictionary=json.loads(html)  data_arr=dictionary["data"]  for i in range(0,19):    name=data_arr[i]["nickname"]    img_url=data_arr[i]["vertical_src"]    print(type(img_url))    respon_tem=urllib.request.urlopen(img_url)    anchor_img=respon_tem.read()    with open('../photos/'+name+'.jpg','wb') as f:      f.write(anchor_img)

然后就等著吧~~

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江津市| 望城县| 镇沅| 门源| 麻栗坡县| 永吉县| 遂平县| 余江县| 甘德县| 甘泉县| 恩平市| 南岸区| 油尖旺区| 托克逊县| 芜湖市| 平南县| 大邑县| 平昌县| 林口县| 衢州市| 长岭县| 伽师县| 额敏县| 土默特右旗| 新蔡县| 榆树市| 新宁县| 弋阳县| 师宗县| 平遥县| 浮梁县| 从化市| 渭南市| 西盟| 高尔夫| 平湖市| 辛集市| 洱源县| 绥化市| 大新县| 元朗区|