欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python指定爬取虎牙图片(简单详细)

程序员文章站 2022-11-05 19:59:19
关于看了很久的斗鱼主播图片,我的欲望也欲来不满,望着他隔壁家的虎牙,我的心开始动摇,最后,我忍不住点开了看,发现了新鲜的图片,人就是如此,祖传手艺岂可落下,于是我开始爬取虎牙的图片…想看斗鱼的指定爬取图片可以点开此链接:https://blog.csdn.net/weixin_45859193/article/details/107081107起初我天真的以为斗鱼和虎牙设计网页的模式是一样的,所以我点开了js解析找到了一个比较类似网页链接:https://search.cdn.huya.com/?...

关于

看了很久的斗鱼主播图片,我的欲望也欲来不满,望着他隔壁家的虎牙,我的心开始动摇,最后,我忍不住点开了看,发现了新鲜的图片,人就是如此,祖传手艺岂可落下,于是我开始爬取虎牙的图片…

想看斗鱼的指定爬取图片可以点开此链接:https://blog.csdn.net/weixin_45859193/article/details/107081107

起初

我天真的以为斗鱼和虎牙设计网页的模式是一样的,所以我点开了js解析找到了一个比较类似网页链接:
https://search.cdn.huya.com/?callback=jQuery1111024704760784583946_1595034973844&m=Search&do=getSearchContent&q=%E8%8B%B1%E9%9B%84%E8%81%94%E7%9B%9F&uid=0&v=4&typ=-5&livestate=0&rows=16&_=1595034973845
python指定爬取虎牙图片(简单详细)

发现加粗的字体是关键字,但是当我搜美女的时候却发现里面是把美女当成关键字去搜索,并不是我想要的图片,我也看不懂里面是什么东西,虽然能找到链接,大概知道的样子(说白就是不知道= =)…
于是只能用另一个方法

Xpath工具

本文会用到xpath工具如果有不懂也可以点开斗鱼链接去查看,里面有详解
没有下载的可以再次链接下载:https://pan.baidu.com/s/1GXPm1kMENXhOkefKcEQnlA
提取码:8wwv

步骤

1.url地址
2.发送请求
3.解析数据
4.保存数据
所以我第一步要做的是先点开虎牙直播的分类找到他的url地址,然后分类
python指定爬取虎牙图片(简单详细)
发现他的分类的url是:https://www.huya.com/g,这是第一层,然后随便点一个颜值的进去看看
python指定爬取虎牙图片(简单详细)这一层的url是:https://www.huya.com/g/2168,不过点开全部会出现#tag0,我们是要全部图片所以加上去,看到了2168这个奇怪的数字,不过如果我想指定的话,是不能打颜值这2个字的,因为找不到,所以我们要返回上一层url先获取他的id号,和关键字…
python指定爬取虎牙图片(简单详细)python指定爬取虎牙图片(简单详细)获得了这2个我们是不是能在输入一个数的时候来个循环判断查找,找到把id带上退出第一层url,去第二层url地址,没找到继续找,没有这个数就显示没有,那么是不是为了让我们能知道关键字id,是不是要再把这里面的id和关键字保存到一个记事本,方便查看…

代码

代码有注释,不懂的可以去看看上面的步骤

import requests
from lxml import etree
import os
from urllib.request import urlretrieve
import sys


url='https://www.huya.com/g'

headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36'}

response=requests.get(url,headers=headers).content.decode()

html=etree.HTML(response)
req=html.xpath('//li[@class="g-gameCard-item"]//a//@data-gid')
names=html.xpath('//li[@class="g-gameCard-item"]//a//p/text()')
i=0
mylog=open('关键字大全.log',mode='a',encoding='utf-8')
print('                                        -----------查找关键字大全-----------',file=mylog)
#这里只是为了查看关键字美观而已,保存到记事本里
for re,name in zip(req,names):
    print('关键字:%s 查找id号:%s'%(name,re),end=' ',file=mylog)
    i+=1
    if i==5:
        print('\n',file=mylog)
        i=0
mylog.close()
name_1=input('\n请输入查找关键字:')
for re,name in zip(req,names):
    if name_1==name:
        break
if name_1!=name:
    print('没有你想查找的关键字')
else:
    url='https://www.huya.com/g/{}#tag0'.format(re)
    data=requests.get(url,headers=headers).content.decode()
    html=etree.HTML(data)
    #链接
    link_list=html.xpath('//a/img[@class="pic"]/@data-original')
    #名字
    names_1_list=html.xpath('//span[@class="avatar fl"]//img/@title')
    # 文件名字
    os.mkdir(name)

    for link, names_1 in zip(link_list, names_1_list):
        # 获取链接
        link = link.split('?')[0]
        try:
        # 保存数据
            urlretrieve(link, name + '/' + names_1 + '.jpg')
            print(names_1 + '100%')
        except:
            pass

最后

奉上图片
python指定爬取虎牙图片(简单详细)

python指定爬取虎牙图片(简单详细)

python指定爬取虎牙图片(简单详细)
福利
随便来几张我觉得好看的吧!
python指定爬取虎牙图片(简单详细)
python指定爬取虎牙图片(简单详细)
python指定爬取虎牙图片(简单详细)

好了好了,这些够了,不然我要被抓了= =

总结
还是少看点,适当的看还是有帮助滴,如果走火后果还是很严重的啊!!!

本文地址:https://blog.csdn.net/weixin_45859193/article/details/107426139