通过PYTHON爬虫爬取明星的照片和资料 您所在的位置:网站首页 后翼弃兵怎么念 通过PYTHON爬虫爬取明星的照片和资料

通过PYTHON爬虫爬取明星的照片和资料

2023-11-03 23:45| 来源: 网络整理| 查看: 265

通过PYTHON爬虫爬取明星的照片和资料 一.准备工作1.选择合适的网站2.安装MongoDB数据库3.导入依赖库 二.开始爬虫

一.准备工作 1.选择合适的网站

这次爬虫的目的,是为了为人脸识别项目提供足量的数据集。所以要求目标网站必须符合:

明星信息齐全(至少包含正脸照片和姓名)网站结构简洁,利于格式化爬取。

通过不断的排查,最终锁定粉丝网。随手打开一位明星 在这里插入图片描述发现信息齐全,并且域名非常有规律,只要改变s后面的数字,即可分分钟爬取成千上万的数据,就决定是你了!

2.安装MongoDB数据库

这么大量的数据需要用数据库来合理的储存,我们选择MongoDB来进行,因为它上手简单并且可以使用Python中的pymongo库操作。

安装过程请教百度喔

安装完成后我们选择robo 3T来可视化我们的数据库,界面如下: 在这里插入图片描述非常的简洁明了!

3.导入依赖库 import requests import sys import re #用于正则化操作 from lxml import etree #上述用于爬虫 import pymongo as pm #链接mongoDB 二.开始爬虫

首先我们链接数据库

client = pm.MongoClient() db = client['face'] #访问数据库 collection = db['my_face'] #访问表

如果数据库和表不存在则会自动创建

接着我们构建请求头,来躲过网站的反爬虫机制。

headers = {'Referer':'https://accounts.pixiv.net/loginlang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36' } for j in range(1,5000): content1 = requests.get('http://star.ifensi.com/s{}/'.format(j),headers=headers).text # print(content1) root1 = etree.HTML(content1) # print(root1) href1 = root1.xpath('//div[@class="hbox clearfix"]/div[@class="hd_1"]/img') #定位到img标签 name = root1.xpath("//h1[@class='t1']/text()") #获得明星的名字 birth = root1.xpath("//p[@class='t2'][1]//text()") #获得明星的身高和生日 data = {} try: data["name"] = name[0] #这一步是为了排除无法访问的网站,如果网站无法访问直接进入下一循环 except: continue data["id"] = j for i in range(len(birth)): birth[i] = birth[i].replace("\xa0","") #去空格 hanzi,number = re.findall('(.*):(.*)',birth[i])[0] #分别提取出key和value data[hanzi] = number #在字典中创建键值对 img_url = href1[0].attrib["src"] #获取图片的url response = requests.get(img_url,headers=headers) img = response.content with open( 'faces/{}.jpg'.format(j),'wb' ) as f: f.write(img) #将图片保存到faces文件夹 data["path"] = 'faces/{}.jpg'.format(j) #保存相对路劲 collection.insert_one(data) #将字典插入到表中

正式开始爬虫操作,需要先在当前目录下创建faces文件夹,获得的明星照片会保存在这个目录。我们期望获得5000位明星的数据。

代码将在数据库中写入以下4个数据:

ID(与保存的图片序号一致)明星姓名明星身高明星生日该明星照片的相对路径

在这里插入图片描述 在这里插入图片描述 大功告成!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有