爬取某牙直播小姐姐图片
不多说直接上代码:
需要用到的软件就一个:pycharm
import os
import requests
import json
from urllib import request # 下载图片
# 模拟浏览器访问,以免反爬,这里要写的是自己的User-Agent,直接打开浏览器按F12点击网络就出来了。
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 Edg/90.0.818.42'
}
def get_huya(page=1): # page表示第几页图片,默认第1页
"""
要爬取的网页
:param page: 页码
:return:
"""
# 要爬取的网址
url = f'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&callback=getLiveListJsonpCallback&page={page}'
# 开始爬取
response = requests.get(url, headers=headers)
content = response.text
result = content[len('getLiveListJsonpCallback('):-1]
# json解析
result2 = json.loads(result)
list1=result2['data']['datas']
for meinv in list1:
nick = meinv['nick']
img =meinv['screenshot'] # 图片的url
# 下载图片,并以昵称作为图片名
try:
# 图片会下载在当前路径下的huya文件下
request.urlretrieve(img,f'huya/{page}-{nick}.png')
request.urlcleanup() # 清空缓存
print(nick,'下载成功')
except:
print('error:',nick)
print(result)
if __name__ == '__main__':
# 自动创建huya文件夹
if not os.path.exists('huya'):
os.mkdir('huya')
# 这里获取的是第一页的数据,要想获取更多,自己调用
get_huya()
# get_huya(2)
# get_huya(3)
直接用我的代码,改一下User-Agent就可以了。