爬虫 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送给所有粉丝的新年礼物--粉丝画像的主要内容,如果未能解决你的问题,请参考以下文章

爬虫 3送给所有粉丝的新年礼物--粉丝画像

爬虫 3送给所有粉丝的新年礼物--粉丝画像

爬虫 3送给所有粉丝的新年礼物--粉丝画像

爬虫 3送给所有粉丝的新年礼物--粉丝画像

Python爬虫实战,argparse模块,Github用户粉丝数据爬虫

jvm新年快乐,这篇jvm就当做新年礼物送给你吧---jvm第一集