python实战|爬取1000位小姐姐私房照制作照片墙,刷新你三观的颜值!

今天给大家介绍python如何爬取虎牙小姐姐并制作心形照片墙,

有兴趣的小伙伴们一起来看看吧!

点击进去

卧槽,这颜值.....

i了i了

需求分析

我们的目标有5个,分别是小姐姐的

房间名称、封面照片、昵称、头像、直播间当前人数

网页分析

浏览器快捷键F12打开开发者模式,可以观察到当前页面120个小姐姐信息都在右边列表里面。

但是大家可以看看我标红处,这是一个非标准格式的json数据集,

所以要想获取到小姐姐的信息

先得获取到标准的数据集 

发送请求

url =f'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&callback=getLiveListJsonpCallback&page={page}'

headers = {

'cookie':'__yamid_tt1=0.17768755672559844; __yamid_new=C9662ED452B00001997340851CC8140B; game_did=j7Os0i0Txedw1cLUtP0vmKnalM1x65kO3rE; SoundValue=0.50; alphaValue=0.80; guid=0a42cb71a121c360e701bcfbbdfb20c9; udb_guiddata=b45f59af594a4e83cde65858; udb_anouid=1461170529732; isInLiveRoom=true; Hm_lvt_51700b6c722f5cf39906a596ea41f=1623400798,1624888823,1624928362; udb_passdata=3; __yasmid=0.17768755672559844; _yasids=__rootsid%3DC96BDFA246600001458617807F641C12; Hm_lpvt_51700b6c722f5bb4cf39906a596ea41f=1624928418; huya_web_rep_cnt=137',

'referer':'https://www.huya.com/g/2168',

'user-agent': str(UserAgent().random)

}

try:

resp = requests.get(url, headers = headers)

print(resp.text)

去除非必要信息,构造标准json数据集

text = resp.text[25:-1]# 去除text格式前后无效字符

json_text = json.loads(text)# 转为标准json格式数据集

print(json_text)

接下来我们就可以获取小姐姐信息啦

room_name = item['roomName']# 房间名称

cover_link = item['screenshot']# 封面照片

nick = item['nick']# 昵称

prof_phot = item['avatar180']# 头像

view_num = item['totalCount']# 直播间当前人数

print(room_name, cover_link, nick, prof_phot, view_num)

多页数据获取

小姐姐们直播大多集中在晚上,所以晚上爬取的数据有成千个,白天也就几百个,

不管你想获取多少,一个for循环就搞定啦

# 获取10页虎牙小姐姐

forpageinrange(1,10+1)

url =f'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&callback=getLiveListJsonpCallback&page={page}'


存入Excel

这里我们使用的是openpyxl来存储在Excel中

# 创建

ws = op.Workbook()

wb = ws.create_sheet(index=0)

wb.cell(row=1, column=1, value='房间名称')

wb.cell(row=1, column=2, value='封面照片')

wb.cell(row=1, column=3, value='昵称')

wb.cell(row=1, column=4, value='头像')

wb.cell(row=1, column=5, value='直播间当前人数')

# ----------------------------------------

# 存储

wb.cell(row=count, column=1, value=room_name)

wb.cell(row=count, column=2, value=cover_link)

wb.cell(row=count, column=3, value=nick)

wb.cell(row=count, column=4, value=prof_phot)

wb.cell(row=count, column=5, value=view_num)

ws.save('虎牙小姐姐.xlsx')

下载图片

重点来了,我要下载小姐姐美照了

fornum, (pic_img, pic_name)inenumerate(save_pic):

r = requests.get(pic_img)

pic = r.content

try:

withopen('./pictures/{}.jpg'.format(pic_name),'wb')asfin:

print(f'正在爬取第{count}张图片')

fin.write(pic)

print('{}.jpg----下载成功'.format(pic_name))

except:

print('下载失败!')

然后就是这样

还有这样

图片可视化

这么多好看的小姐姐我要给他们将摆它们成一个心形,这样才能表达我满满的爱意

# 设置心性图片矩阵

HEART = [[0,0,1,1,0,0,0,0,1,1,0,0],

[0,1,1,1,1,0,0,1,1,1,1,0],

[1,1,1,1,1,1,1,1,1,1,1,1],

[1,1,1,1,1,1,1,1,1,1,1,1],

[1,1,1,1,1,1,1,1,1,1,1,1],

[0,1,1,1,1,1,1,1,1,1,1,0],

[0,0,1,1,1,1,1,1,1,1,0,0],

[0,0,0,1,1,1,1,1,1,0,0,0],

[0,0,0,0,1,1,1,1,0,0,0,0],

[0,0,0,0,0,1,1,0,0,0,0,0]]

# 定义相关参数

SIZE =100# 每张图片的尺寸,越大越清晰

N =1# 每个点位上放置1*1张图片

# 计算相关参数

width = np.shape(HEART)[1] * N * SIZE# 照片墙宽度

height = np.shape(HEART)[0] * N * SIZE# 照片墙高度

n_img = np.sum(HEART) * (N **2)# 照片墙需要的照片数

filenames = random.sample(os.listdir(save_path), n_img)# 随机选取n_img张照片

filenames = [save_path + fforfinfilenames]

print('宝宝开始集合!')

# 绘制爱心墙

img_bg = Image.new('RGB', (width, height))# 设置照片墙背景

i =0

foryinrange(np.shape(HEART)[0]):

forxinrange(np.shape(HEART)[1]):

ifHEART[y][x] ==1:# 如果需要填充

pos_x = x * N * SIZE# 填充起始X坐标位置

pos_y = y * N * SIZE# 填充起始Y坐标位置

foryyinrange(N):

forxxinrange(N):

img = Image.open(filenames[i])

img = img.resize((SIZE, SIZE), Image.ANTIALIAS)

img_bg.paste(img, (pos_x + xx * SIZE, pos_y + yy * SIZE))

i +=1

# 保存图片

img_bg.save('love.jpg')

print('宝宝集合完毕!')

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容