爬虫 3送给所有粉丝的新年礼物--粉丝画像
Posted 大家一起学编程(python)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫 3送给所有粉丝的新年礼物--粉丝画像相关的知识,希望对你有一定的参考价值。
人生总是会有迷茫,会有不知所错,会有一种不可言说的心情。那是一种非常奇妙的感觉,但是那会非常的不舒服。这一年来,我在不断思考着我能做什么,我可以做什么,我如果没有工作了会怎么样。我还剩下什么?
今年,我的粉丝第一次突破5000,我很高兴,工作之后的乐趣,就是写写文章,写写代码。让更多的人能了解到编程的乐趣,也是一件不错的事情。
我更新的频率没有那么准时,也没有很频繁。同时,这也使我对自己产生怀疑。我的写作是否有意义,我是否能帮助到大家。我的方向是什么?
然后就在这种不断的自我内耗中,感觉整个人越来越坏。
一次翻看短视频的机会,我被点醒了,那句话让 我印象深刻:成功,不成功,失败,不失败,你总是患得患失,太在意昨天,又太担心将来,昨天已经成为历史,将来是一个谜团,今天,是上天赐给我们的礼物,像珍惜礼物哪样珍惜今天。
是呀,这么简单的一个道理,只有亲身经历,才知道,我们连一些简单的道理都还在处于不断循环中,不如珍惜当下,过好每一天,去面对那么多可爱的人,可爱的事,为生活增添一点乐趣。
今天,我送给粉丝朋友们一副画,这副画是由所有粉丝的头像构成的。感谢大家的关注,是你们让我有了创作的热情,未来,我们也会一起。
第一步:获取粉丝列表头像
import requests
import os
def get_fs_img(page,id):
"""获取图片链接,名称"""
headers =
'Accept':'application/json, text/plain, */*',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'zh-CN,zh;q=0.9',
'Connection':'keep-alive',
'Host':'blog.csdn.net',
'Origin':'https://djyqxbc-python.blog.csdn.net',
'Referer':'https://djyqxbc-python.blog.csdn.net/?type=sub&subType=fans',
'sec-ch-ua':'" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
'sec-ch-ua-mobile':'?0',
'sec-ch-ua-platform':'"Windows"',
'Sec-Fetch-Dest':'empty',
'Sec-Fetch-Mode':'cors',
'Sec-Fetch-Site':'same-site',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
reponses=requests.get("https://blog.csdn.net/community/home-api/v2/get-fans-list?page="+str(page)+"&pageSize=500&id="+str(id)+"&noMore=false&blogUsername=qq_39046854",headers=headers)
fs_list=reponses.json()["data"]["list"]
for n,i in enumerate(fs_list):
with open("photos\\\\"+i["username"]+".jpg","wb") as f:
he='user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
img=requests.get(url=i["userAvatar"],headers=he).content
f.write(img)
if n==499:
print(i["id"],page+1)
page+=1
get_fs_img(page,i["id"])
第二步:清除默认头像数据
数据中有一部分采用默认图像,因此需要去除默认图
def clear_default_img():
"""过滤默认头像"""
for root, dirs, files in os.walk("photos"):
for i in files:
img_path="photos\\\\"+i
f=open(img_path,"rb")
b = f.read()
for file in ["1.jpg","2.jpg","3.jpg","4.jpg"]:#比对默认图片,进行删除
m = open(file, "rb")
a=m.read()
if a==b:
f.close()
os.remove(img_path)
第三步:生成粉丝图像
from PIL import Image
import numpy
import os
import random
import numexpr
# line_num: 一行放多少张照片
# # col_num: 一列放多少张照片
# # fans_w: 照片宽为多少
# # fans_h: 照片高为多少
line_num =100#一行放多少张照片
col_num = 100#一列放多少张照片
fans_w = 20#照片宽为多少
fans_h = 20#照片高为多少
def uniform_size(file_path, width, height):
"""将照片统一大小"""
img = Image.open(file_path)
if img.mode != "RGBA":img = img.convert("RGBA")
uniform_img = img.resize((width, height))
return numpy.array(uniform_img)[:height, :width]#创建一个数组。
def create_img():
"""创造图片,并保存"""
list_img=[]
path ="photos/"
for i in os.listdir(path):
list_img.append(path + i)
wight = line_num * fans_w
height = col_num * fans_h
expr= numpy.array(uniform_size("icon.jpg", wight, height))#创建一个矩阵,二维数组。
expr = numexpr.evaluate("expr*0.3")#加快运算速度
for i in range(line_num):
for j in range(col_num):
ex = expr[(j * fans_h):((j + 1) * fans_h), (i * fans_w):((i + 1) * fans_w)]
un = uniform_size(random.choice(list_img), fans_w, fans_h)#随机获得一张图片,并控制大小
res = numexpr.evaluate("ex+un*0.7")#加快运算速度
expr[(j * fans_h):((j + 1) * fans_h), (i * fans_w):((i + 1) * fans_w)] = res
Image.fromarray(expr.astype(numpy.uint8)).save("fans_logo.png")
if __name__ == "__main__":
create_img()
以上是关于爬虫 3送给所有粉丝的新年礼物--粉丝画像的主要内容,如果未能解决你的问题,请参考以下文章