本来打算做图片与文字的相关性,后来模型没有全部弄好,爬取了200万张图片,如有需要图片可以留言,免费赠送。

大数据下的图片类别以及图片爬取详细的过程:在此分为两个部分的爬虫程序,一个是爬取类别,也就是图像的标注。第二个是利用这些类别(关键字)爬取图片的程序,这时候我拿到类别了,又写了第二个爬虫,这个爬虫留作为关键字的爬取图片使用,如我拿到第一个爬虫所爬下来的类别,时候我我把类别输第二个爬虫中去,此时,对应输入想要的图片的类别关键字,以及数量,便可从百度的图片库拿下来。

(一)第一个爬取图片类别和图片的过程:

首先我想要拿取图片的类别作为,图片与文字的相关性处理的数据,然后我需要找到我想要的网站,如图一所示。

其中的一个页面的URL:http://so.sccnn.com/search/%D1%F9%BB%FA/1.html

图一

对网站的url进行分析:

这是其中的一个页面的网址,而现在我需要拿取网站的所有类别,这时候我发现了一个规律:也就是前面和后面的也都是不变的,只需要改变里面的数字1-242页,这其中的数字:于是我可以这样写:

for i in range(1, 242):  # 拿到所有的列表的url

Str_i = str(i) #转换为字符串

url = 'http://so.sccnn.com/search/%D1%F9%BB%FA/' + Str_i + '.html'

上面的代码这样写也就可以拿到全部的页面了。

现在开始对页面进行分析:

首先打开F12的谷歌调试器,另外我安装了一个xpth方便我直接解析数据。此时鼠标点击f12出现的调试页面,用搜索箭头定位,比如点击图像,那么这时候就可以定位到图片的路径标签。如图二所示。

图二

当定位到标签路径时候,这时候鼠标右击点击copy可以看到里面有CopyXpath,这是在爬虫中需要获取图片路径解析的必要手段,过程如图三所示。

当定位到标签路径时候,这时候鼠标右击点击copy可以看到里面有CopyXpath,这是在爬虫中需要获取图片路径解析的必要手段,过程如图三所示。

图三

此时我们需要对我们的xpath解析检验一下:在Chrome浏览器中有xpath辅助工具方便我们直接使用。过程如图四所示,并且xpath辅助工具在顶部可以看见,这里需要注意一点,因为有的网站直接用copy的Xpath不行,如图四我们很容易看见这时候右边是空的值,所以此时需要我们自己去写xpath。

图四

此时再次验证自己写的xpath是否拿到数据,如图五所示:可以很清楚看见右边已经把每个类别拿到了。

此时我们用同样的方法检验图片的路径,如图五:很清楚可以看到图片路径正确,如图五所示,前期工作准备完毕,这时候我们就可以开始写爬虫了。

图五

在准备爬虫之前还有你一个问题需要考虑。那就是这个一页有16个子目,总共242页,这时候我采用什么样的方法提取单个页面单个页面提取是一个问题,这时候我需要用到循环,并且如何从大类下面拿子类,如下代码所示:

下面是其中一个爬虫的源码,此爬虫只是用来获取这个网站的类别和图片。下面是这个爬虫的完整代码:

title就是我拿取得类别长度也就是16,因为一页16个类别展示,i为第页数,也就是说开始为16,当第二页时候,我从16到32之间取值,这样保证了我拿取得第几张图片,而我把n赋值为0时,因为每页拿取得都是从0-16之间的类别和图片,因为我的类别和图片是相对应的,所以多少张图片也是相对应。

import requests
from lxml import etree
import re
#文本信息保存在test.txt,也就是类别信息存储
file = open("test.txt", 'w', encoding='utf-8')
for i in range(1, 242):  # 循环拿到所有的列表的url
    Str_i = str(i)
    url = 'http://so.sccnn.com/search/%D1%F9%BB%FA/' + Str_i + '.html'
#url = "http://so.sccnn.com/search/%D1%F9%BB%FA/2.html"
    res = requests.get(url) #利用response响应获取URL
    content = res.content #拿取文本内容
    html = etree.HTML(content)
    # 数据解析
    title1 = html.xpath('//td/div/a/text()') #获取文本的类别
    desc = html.xpath('//td/div/a/text()')
    imgs = html.xpath('//td/div/a/img/@src')  #获取图片地址

# 写入文件
    title=len(title1) #解析文件类别
    title = 0 + 16*i #从第一个页拿取
    x=title-16 #
    n = 0  #初始为零
    for m in range(x, title):
        # 描述要特别处理
        # 保存文本信息
        file.write(title1[n]+ "\n")
        # 下载图片
        with open('D:\Spideimages\\' + str(m) + '.jpg', 'wb') as fd:
            picture = requests.get(imgs[n + 1]).content
            fd.write(picture)
            print("成功下载%s.jpg" % m)
    # 关闭文件
        n=n+1
file.close()

图片爬取类别工作完成。

大数据下的图片类别以及图片爬取详细的过程(一)相关推荐

  1. 大数据下机械智能诊断的机遇与挑战,阅读文献系列(一)

    阅读文献系列一 论文题目:大数据下机械智能诊断的机遇与挑战 1.大数据时代下的故障诊断的挑战: 2.机械大数据的特性: 3.应该怎么做: 4.现有工作: 5.故障诊断三方面研究: 5.1 信号获取 5 ...

  2. 推荐 :大数据下的用户与价值分析

    大数据下,用户分析的核心是什么? --解决实际问题 确定用户分析目的,具体是为了降低成本?增加收入?优化用户体验?提升营销效果?用户针对性管理? 确定目的后开始选择合适的数据,然后搭建模型,最后得出结 ...

  3. 在大数据下,微信眼中的你是什么身份?05/22

    在大数据下,微信眼中的你是什么身份? 想知道微信眼中的你吗? 从2015年1月第一批朋友圈广告上线开始,就有网友大呼收到微信的"不公正待遇",第一批广告投放品牌为"宝马中 ...

  4. 云计算&大数据 “下一幕”智能变革之力

    2019独角兽企业重金招聘Python工程师标准>>> 2016年的互联网科技领域,云计算.大数据.人工智能成为最热词汇.阿里云"为了无法估算的价值"将中国的计算 ...

  5. 【阿里云产品公测】大数据下精确快速搜索OpenSearch

    2019独角兽企业重金招聘Python工程师标准>>> [阿里云产品公测]大数据下精确快速搜索OpenSearch 作者:阿里云用户小柒2012 相信做过一两个项目的人都会遇到上级要 ...

  6. 大数据下的BI新特性

    大数据下的BI新特性 大数据BI的新需求包括大量化(多个大数据集并行分析).多样化(结构化.半结构化.非结构化).快速化(Velocity)和价值(易用性).而计算分层(流计算.块计算.全局计算).快 ...

  7. 百度热力图颜色说明_大数据下的龙港、鳌江人口热力图

    大数据下的龙港.鳌江人口热力图 --趋势显示,人口逐步集中于区域中心地区与城市  2020-08-25  大数据(big data),是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数 ...

  8. 大数据下的精准营销,媒介们将何去何从

    大数据下的精准营销,媒介们将何去何从 现在很多头部的自媒体账号,百万粉丝开价都要几十万的广告费了,有人和某大号合作,要提前一个月预约,最后投放完有一个"10万+"的阅读,之后就没有 ...

  9. 【CSWS2014 Summer School】大数据下的游戏营销模式革新-邓大付

    大数据下的游戏营销模式革新 邓大付博士腾讯专家工程师 Bio:毕业于华中科技大学,现任腾讯IEG运营部数据中心技术副总监,负责腾讯游戏的数据挖掘相关工作,包括有用户画像,推荐系统,基础算法研究等.主要 ...

  10. 2020 高考大数据下,数据可视化告诉你如何填志愿、选学校?

    高考分数是决定考生选择大学的基准,在填报志愿时,每个考生都想以最低的分数考入最好的大学,发挥分数的最大效能,即"把分数用足".那么,以博弈论的观点,就是要研究其间的相互作用,做出优 ...

最新文章

  1. android Spinner 例子
  2. 6425C-Lab11 配置DNS
  3. python中文解释-python注释不能识别中文
  4. winRAR 没有右键选项
  5. 团队开发软件特点介绍
  6. [Python人工智能] 八.卷积神经网络CNN原理详解及TensorFlow编写CNN
  7. rust火箭基地主楼开启方法_Rust 为什么能成为 Stack Overflow 最受欢迎的语言?
  8. 辗转相除法求最大公约数(c++)
  9. 《构建之法》第八章自习感想与知识点
  10. shell字符串是否以a-zA-Z字母开头
  11. c++读取文件夹下特定文件
  12. Oracle11gr2新增APPEND_VALUES提示
  13. 使用代码对现实世界进行抽象,软件设计和思维。
  14. lazada新手卖家必看!教你快速入门东南亚lazada平台
  15. 开发了一个拼多多淘宝闲鱼所有虚拟店商品通过百度网盘自动发货机器人软件助手
  16. PIC单片机入门教程(四)—— 第一个工程
  17. Python的列表解析式,集合解析式,字典解析式
  18. Firefox,火狐about:config设置详解
  19. 微信整人假红包图片_微信整人假红包10秒gif 微信整人红包动态图如何制作|动漫红包图...
  20. 1068 Find More Coins (30分)

热门文章

  1. cydia所有中文源地址_Cydia中文源大全.doc
  2. NAND FLASH简介
  3. 【小飞兔整站下载】整站下载器哪个好用_整站下载工具哪个好
  4. 网上找的视频素材有水印怎么办?教你一键打码
  5. 【全网最实用】最常用Windows快捷键和Windows命令整理
  6. MySQL最大建议行数2000w, 靠谱吗?
  7. Objective-C 入门教程
  8. 【VHDL】分频器设计要求:25分频,占空比为50%
  9. undo歌词中文音译_undo的中文谐音歌词
  10. MyBatisPlus——条件构造器