python怎么爬虎牙_Python爬虫:爬取虎牙星秀主播图片
动态爬取思路讲解
1.简单的爬虫只需要访问网站搜索栏处的url,就可以在开发者工具(F12)处,利用正则表达式、Xpath、css等进行定位并抓取数据;
2.虎牙星秀页面不同于简单的网页,随时都在更新,但搜索栏处的url并未改变,所以它是一个动态加载(ajax)的页面;
3.需要在开发者工具界面处对network进行抓包,提取真正给网站页面提供图片链接的url;
4.通过抓包的url,会发现打开的是一个json格式的文本,在里面可以抓取到需要的数据以及链接;
5.最后我们就可以打开Pycharm,活动小手指,敲击小键盘啦!!!
(不要太忘情,打扰到身边的小伙伴哦~)
导入需要的python模块
通过pip install 模块名,本人使用的是Anaconda Prompt导入
import requests
import os
import json
import time
from random import randint
使用Python导入的话比较麻烦,所以强烈建议大家使用Anaconda导入模块。
通过爬虫获得的主播图片
在Pycharm中所敲的代码
# -*- coding: utf-8 -*-
# @Date: 2020/8/12 16:17
# @Author: Ricky Rau
import requests
import os
import json
import time
from random import randint
def main():
url = 'https://www.huya.com/cache.php'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
for i in range(5):
page_num = str(i)
params = {
'm': 'LiveList',
'do': 'getLiveListByPage',
'gameId': '1663',
'tagAll': '0',
'page': page_num
}
time.sleep(randint(1,5))
img_lists = getData(url, params, headers)
img_content = get_img_content(img_lists)
saveData(img_lists, img_content)
def getData(url, params, headers):
json_text = requests.get(url=url, params=params, headers=headers).text
jsonObj = json.loads(json_text) #解码的过程,把乱码变成了中文
datas = jsonObj['data']['datas']
#print(datas)
img_lists = []
for data in datas:
img = []
nick = data['nick']
screenshot = data['screenshot']
img.append(nick)
img.append(screenshot)
img_lists.append(img)
return img_lists
def get_img_content(img_lists):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
img_content = []
for i in range(len(img_lists)):
src = img_lists[i][1]
content = requests.get(url=src, headers=headers).content
print('解析完毕第{}张图片!'.format(i))
img_content.append(content)
return img_content
def saveData(img_lists, img_content):
if not os.path.exists('./xingxiu'):
os.mkdir('./xingxiu')
for i in range(len(img_lists)):
img_name = img_lists[i][0] + '.jpg'
img_path = './xingxiu/' + img_name
with open(img_path, 'wb') as fp:
fp.write(img_content[i])
if __name__ == '__main__':
main()
代码中涉及的模块详解
模块
用法
requests
用来获取网页源代码
json
把json格式的文本变为python可以处理的文本
os
创建一个存放图片的文件夹
time
利用time.sleep()方法给程序设置延迟,防止被网站检测到
random.randint
设置随机睡眠时间,单位为秒
Python 之禅
美比丑好,明比涩强。简胜于繁,繁强于难。
平言莫绕,宜疏莫密。行文如水,易懂为王。
勿提特例,皆循此规。实虽胜纯,识错必究。
若需留证,亦要言明。不明其理,追根问底。
必有一法,可解谜题。汝非龟叔,求之故难。
立足当下,行必有方。行难言喻,所思欠妥。
行易言表,所思可嘉。名正易识,善莫大焉!
python怎么爬虎牙_Python爬虫:爬取虎牙星秀主播图片相关推荐
- python怎么爬虎牙_Python爬虫爬取虎牙数据!谁才是虎牙第一主播!
首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...
- python网络爬图_Python爬虫爬图片需要什么
Python爬虫爬图片需要什么?下面用两种方法制作批量爬取网络图片的方法: 第一种方法:基于urllib实现 要点如下: 1.url_request = request.Request(url) 2. ...
- Python爬虫:爬取某鱼颜值主播图片并保存到本地升级版!
一.准备 1.创建scrapy项目 scrapy startproject douyucd douyuscrapy genspider spider "www.douyu.com" ...
- python爬斗鱼直播房间名和主播名_斗鱼爬虫,爬取颜值频道的主播图片和名字
在斗鱼的界面中,如果滚动条没有拉下去,那么下面的图片都只是一条鱼的图片,所以要使浏览器自动拉动滚动条,可以用到python的selenium库, 1.配置浏览器 要使用selenium,还需要安装 c ...
- python基金预测分析_Python爬虫抓取基金数据分析、预测系统设计与实现
版权声明:本文为博主原创文章,如果转载请给出原文链接:http://doofuu.com/article/4156231.html 目前在开发一款基于Python的基金爬取.分析.预测系统,目前已经开 ...
- python唐诗分析综合_Python爬虫抓取唐诗宋词
一 说明 Python语言的爬虫开发相对于其他编程语言是极其高校的,在上一篇文章 爬虫抓取博客园前10页标题带有Python关键字(不区分大小写) 的文章中,我们介绍了使用requests做爬虫开发, ...
- python解析网页数据_python爬虫——爬取网页数据和解析数据
1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 只要浏览器能够做的事情,原则上,爬虫都能够做到. ...
- python全网表情包_Python爬虫爬取最右公众号表情包资源
某天上厕所刷手机,看到最右公众号里面有一个表情包资源合集 点进去发现有70多期表情包,突然就想到了最近学的爬虫,立马跑回去打开电脑准备看能不能全部爬下来. 我的想法是先找到这70多期的url链接,然后 ...
- python找电影资源_Python爬虫爬取BT之家找电影资源
head.jpg 一.写在前面 最近看新闻说圣城家园(SCG)倒了,之前BT天堂倒了,暴风影音也不行了,可以说看个电影越来越费力,国内大厂如企鹅和爱奇艺最近也出现一些幺蛾子,虽然目前版权意识虽然越来越 ...
最新文章
- linux和java_java内存和linux关系
- mysql用户连接数_mysql用户连接数
- 你眼泪的味道,我知道!
- word中格式化姓名的输出
- Codeforces 474C Captain Marmot 给定4个点和各自旋转中心 问旋转成正方形的次数
- java路径Java开发中获得非Web项目的当前项目路径
- Cocos2d-x学习之创建Android工程和编译
- 最新解决laravel框架路由无法显示的问题
- vscode更改配置文件路径_VsCode的jsconfig配置文件说明详解
- Q:How to read attribute from a tag
- 快速下载谷歌云盘大文件的5种方法
- C语言学习笔记->const和define区别
- 怎么在gif表情包上添加文字?
- Python学习记录 基于《Python编程 从入门到实践》 Python基础 Python第三课 操作列表
- 百度地图离线开发2.0
- Shell攻关之正则表达式
- 中国空气质量AQI热力图
- Fabric.js 图形标注
- iPh oto的删除动画
- 咖说丨一文说清“链上”和“链下”
热门文章
- ELK日志管理系统的搭建
- 2016锐捷网络云课堂云网络研讨会福州闭幕 根植教育彰显“变革之力”
- nacos注册中心死活发现不了服务问题
- 飞行模拟器V1.0正式版
- [解决方案] LaTeX公式中的多行大括号 (如涵盖多个不等式)
- c语言 m文件是什么,M文件扩展名 - 什么是.m以及如何打开? - ReviverSoft
- 是的你没看错,js生成word文档
- html5网页制作技巧,HTML5 网页制作技巧
- 国内外可用的知识图谱资源
- 在 tsx 中使用 react 的 ref 属性