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

  • 一.准备工作
    • 1.选择合适的网站
    • 2.安装MongoDB数据库
    • 3.导入依赖库
  • 二.开始爬虫

一.准备工作

1.选择合适的网站

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

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

通过不断的排查,最终锁定粉丝网。随手打开一位明星
发现信息齐全,并且域名非常有规律,只要改变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:continuedata["id"] = jfor i in range(len(birth)):birth[i] = birth[i].replace("\xa0","")   #去空格hanzi,number = re.findall('(.*):(.*)',birth[i])[0] #分别提取出key和valuedata[hanzi] = number  #在字典中创建键值对img_url = href1[0].attrib["src"]   #获取图片的urlresponse = requests.get(img_url,headers=headers)img = response.contentwith 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(与保存的图片序号一致)
  • 明星姓名
  • 明星身高
  • 明星生日
  • 该明星照片的相对路径



大功告成!

通过PYTHON爬虫爬取明星的照片和资料相关推荐

  1. Python爬虫 | 爬取高质量小姐姐照片

    Python爬虫 | 爬取高质量小姐姐照片 1.数据来源分析 2.获取author_id_list和img_id 3.制作detial 4.制作detial_list 5.数据保存 6.批量获取 7. ...

  2. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  3. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

  4. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么

    在Python中连接到多播服务器问题,怎么解决你把redirect关闭就可以了.在send时,加上参数allow_redirects=False 通常每个浏览器都会设置redirect的次数.如果re ...

  5. python爬虫爬取csdn博客专家所有博客内容

    python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...

  6. python网易云_用python爬虫爬取网易云音乐

    标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...

  7. 使用Python爬虫爬取网络美女图片

    代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...

  8. python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址

    认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...

  9. 运用Python爬虫爬取一个美女网址,爬取美女图

    运用Python爬虫爬取一个美女网址,爬取美女图 要运用到的python技术: 导入库 1.request 发送请求,从服务器获取数据 2.BeautifulSoup 用来解析整个网页的源代码 imp ...

最新文章

  1. SetProcessWorkingSetSize 降低程序运行内存
  2. python得到一个10位随机数的方法及拓展
  3. linux 设置ftp自启,CentOS vsftpd设置安装自启动配置
  4. 如何查看Linux是32位还是64位
  5. Java当中的IO一
  6. 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现按部门组织机构设置权限...
  7. 假设你有一个数组,其中第i 个元素是第i天给定股票的价格。设计算法以找到最大利润。你可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。注意:您不能同时进行多笔交易(即,您必须在再次购买之前
  8. Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法??
  9. 朗文当代高级英语辞典android,朗文当代高级英语辞典下载
  10. 用户故事 | 李兆龙:博观而约取,厚积而薄发
  11. 斯坦福大学自然语言处理第四课“语言模型(Language Modeling)”
  12. python教你如何把自己的微信变成机器人
  13. 【转】Arp的攻防实战
  14. YDLidar开发-在win10下使用C++/python开发全过程-SDK配置
  15. 百度网盘批量重命名文件免费脚本---2020.07
  16. Ubuntu系统从机械硬盘迁移到SSD
  17. cisco 2821 路由器的端口映射
  18. 计算机编程中向量,什么是节点向量
  19. Java == equals() hashCoed()的区别
  20. java导出表格vsd_java - 如何使用Apache POI将vsd / vsdx文件转换为图像(例如jpg png) - 堆栈内存溢出...

热门文章

  1. Supplier示例
  2. linux 系统部署raid 5,CentOS 7.4搭建RAID5及测试实例
  3. 常见邮箱开启 SMTP 服务及 Python 发送 email 详细说明
  4. 疯狂Html+CSS+JS 中CSS总结
  5. 绘画初学者动物怎么画?画动物的基本思路以及画法教程
  6. Windows操作系统下使用chkdsk命令修复已经损坏文件系统的移动磁盘
  7. 四川传媒学院加入ACA世界大赛!发展博学笃行,德艺双馨人才
  8. 佳明服务器又中断了,Garmin佳明多项服务中断 官方回应正在加速恢复
  9. 关于F704UM与PICO调试记录
  10. [NISACTF 2022]checkin