您的位置:首页 > 教育 > 锐评 > Python爬虫案例二:获取虎牙主播图片(动态网站)

Python爬虫案例二:获取虎牙主播图片(动态网站)

2024/10/6 0:29:29 来源:https://blog.csdn.net/m0_74614835/article/details/141324042  浏览:    关键词:Python爬虫案例二:获取虎牙主播图片(动态网站)
爬虫流程:优先假设是JSON数据,抓包方式只能翻页JSON数据HTML数据1.异步数据(即先返回HTML,再返回目标的数据,只是触发了JSON请求),不在HTML中2.不能刷新网页,直接翻页

测试链接:https://live.huya.com/

源代码: 

import requests, json, os
class Two(object):def __init__(self):# 初始化self.no = 1self.start_url = 'https://live.huya.com/liveHttpUI/getLiveList?'self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'}# params不能写在__init__()里面,因为__init__()只执行一次,params是变化的def confrim_params(self):# 构造7页的paramsfor i in range(1, 8):params = {'iGid': '1663','iPageNo': '{}'.format(i),  # i是字符串'iPageSize': '120'}self.request_start_url(params)# breakdef request_start_url(self, params):# 请求起始地址# 法一:# response = requests.get(self.start_url, headers = self.headers(), params=params).text# response = json.loads(response)# 法二(request自带,自动变字典)---常用:response = requests.get(self.start_url, headers=self.headers, params=params).json()self.parse_response(response)def parse_response(self, response):# 解析响应for data in response['vList']:name = data['sNick'].replace('.', '').replace('/', '')link = data['sScreenshot']self.request_link(name, link)def request_link(self, name, link):# 请求图片链接img_data = requests.get(link, headers=self.headers).contentself.create_dir(name, img_data)def create_dir(self, name, img_data):# 创建文件夹if not os.path.exists('../虎牙'):os.mkdir('../虎牙')self.save_data(name, img_data)def save_data(self, name, img_data):# 保存图片with open(f'虎牙/{name}.jpg', 'wb') as f:f.write(img_data)print('ok  第{}张--{}'.format(self.no, name))self.no += 1def main(self):# 逻辑控制部分self.confrim_params()if __name__ == '__main__':t = Two()t.main()

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com