爬取百度搜索的图片

#encoding:utf-8


import urllib




import requests #首先导入库
import  re
MaxSearchPage = 20 # 收索页数
CurrentPage = 0 # 当前正在搜索的页数
DefaultPath = "/home/mindfusion/pic" # 默认储存位置
NeedSave = 0 # 是否需要储存
n=0
def imageFiler(content): # 通过正则获取当前页面的图片地址数组
        return re.findall('"objURL":"(.*?)"',content,re.S)
def nextSource(content): # 通过正则获取下一页的网址
        next = re.findall('<div id="page">.*<a href="(.*?)" class="n">',content,re.S)[0]
        print("---------" + "http://image.baidu.com" + next)
        return next


def spidler(source):


        content = requests.get(source).text  # 通过链接获取内容
        imageArr = imageFiler(content) # 获取图片数组
        global CurrentPage
        print("Current page:" + str(CurrentPage) + "**********************************")
        x = 0
        for imageUrl in imageArr:


            print(imageUrl)
            global  NeedSave
            if NeedSave:  # 如果需要保存保存
               global DefaultPath
               try:
                    picture = requests.get(imageUrl,timeout=10) # 下载图片并设置超时时间,如果图片地址错误就不继续等待了
               except:
                    print("Download image error! errorUrl:" + imageUrl)
                    continue
               urllib.urlretrieve(imageUrl,'%s.jpg' % x)
               x=x+1
               #pictureSavePath = DefaultPath + imageUrl.replace('/','') # 创建图片保存的路径
               #fp = open(pictureSavePath,'wb') # 以写入二进制的方式打开文件            fp.write(picture.content)
               #fp.close()
            else:
               global MaxSearchPage
               if CurrentPage <= MaxSearchPage:
                   if nextSource(content):
                       CurrentPage += 1
                       spidler("http://image.baidu.com" + nextSource(content)) # 爬取完毕后通过下一页地址继续


def  beginSearch(page=1,save=1,savePath="/home/mindfusion/pic"): # (page:爬取页数,save:是否储存,savePath:默认储存路径)
        global MaxSearchPage,NeedSave,DefaultPath
        MaxSearchPage = page
        NeedSave = save
        DefaultPath = savePath
        key = "带口罩的人" #你要搜索的类别
        StartSource = "http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=" + str(key) + "&ct=201326592&v=flip" # 分析链接可以得到,替换其`word`值后面的数据来收索关键词
        spidler(StartSource)


beginSearch(page=1,save=1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sdut 活动选择问题

活动选择问题 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description sdut 大学生艺术中心每天都有n个活动申请举办&#xff0c;但是为了举办更多的活动&#xff0c;必须要放弃一些活动&#xff0c;求出每天最多能举办多少活动。Input 输入包括…

YOLO升级版:YOLOv2和YOLO9000解析

论文笔记&#xff1a;YOLO9000: Better, Faster, Stronger&#xff1b;官方网站 评论&#xff1a;YOLO是基于深度学习方法的端到端实时目标检测系统&#xff08;YOLO&#xff1a;实时快速目标检测&#xff09;。YOLO的升级版有两种&#xff1a;YOLOv2和YOLO9000。作者采用了一系…

sdut 马的走法

马的走法 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 在一个4*5的棋盘上&#xff0c;马的初始位置坐标&#xff08;纵 横&#xff09;位置由键盘输入&#xff0c;求马能返回初始位置的所有不同走法的总数&#xff08;马走过的位置不…

python 生成xml文件

from xml.dom.minidom import Document # 确保caffe在Python路径: import xml.dom.minidomdoc Document() #创建DOM文档对象Object doc.createElement(Objects)doc.appendChild(Object) objec_namepersonlable15xmin207ymin106xmax489ymax381score0.99566object_name doc.c…

sdut 懒虫小鑫

懒虫小鑫 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 小鑫是个大懒虫&#xff0c;但是这一天妈妈要小鑫去山上搬些矿石去城里卖以补贴家用。小鑫十分的不开心。不开心归不开心&#xff0c;小鑫还是要做这件事情的。我们把这个事情简…

c++ 解析xml文件

解析的xml文件 <?xml version"1.0" encoding"utf-8"?><Objects><person><label>15</label><xmin>207</xmin><ymin>106</ymin><xmax>489</xmax><ymax>381</ymax><scor…

sdut 最少拦截系统

最少拦截系统 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.…

ubuntu下动态链接库的编译和使用实例

以下实例的环境是amd64 ubuntu10.10 g 4.4.5测试成功&#xff0c;在其他配置的机器上可能有一点区别。 动态库的使用方式中有两种&#xff0c;第一种是类似于静态库的使用&#xff0c;另一种我称之为真正的动态加载动态库&#xff0c;主要是因为这种方式在程序运行的过程中加载…

sdut 数据结构实验之栈四:括号匹配

数据结构实验之栈四&#xff1a;括号匹配 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 给你一串字符&#xff0c;不超过50个字符&#xff0c;可能包括括号、数字、字母、标点符号、空格&#xff0c;你的任务是检查这一串字符中的( )…

解读Batch Normalization

【活动】Python创意编程活动开始啦&#xff01;&#xff01;&#xff01; CSDN日报20170424 ——《技术方向的选择》 程序员4月书讯&#xff1a;Angular来了&#xff01;解读Batch Normalization 2016-02-23 16:03 5262人阅读 评论(1) 收藏 举报 本文章已收录于&#xf…

Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn

Caffe学习系列(1)&#xff1a;安装配置ubuntu14.04cuda7.5caffecudnn 一、版本 linux系统&#xff1a;Ubuntu 14.04 &#xff08;64位&#xff09; 显卡&#xff1a;Nvidia K20c cuda: cuda_7.5.18_linux.run cudnn: cudnn-7.0-linux-x64-v4.0-rc 二、下载 Ubuntu 14.04下载地址…

将数据集做成VOC2007格式用于Faster-RCNN训练

[置顶] 将数据集做成VOC2007格式用于Faster-RCNN训练 2016-02-23 15:35 29068人阅读 评论(336) 收藏 举报 本文章已收录于&#xff1a; 分类&#xff1a; Deep Learning&#xff08;7&#xff09; 作者同类文章X版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主…

快速排序的实现--代码

#include<stdio.h>int a[10000]; void QickSort(int a[],int l,int r) {int temp;int il,jr;if(l<r){tempa[l];//存val的值while(i!j){while(j>i&&a[j]>temp) --j;// 从右往左找出该数比val值小的数if(i<j){a[i]a[j];//放在val的左 边i;//i右移动}wh…

SSD框架训练自己的数据集

SSD框架训练自己的数据集 SSD demo中详细介绍了如何在VOC数据集上使用SSD进行物体检测的训练和验证。本文介绍如何使用SSD实现对自己数据集的训练和验证过程&#xff0c;内容包括&#xff1a; 1 数据集的标注2 数据集的转换3 使用SSD如何训练4 使用SSD如何测试1 数据集的标注 …

归并排序的实现-代码

#include<stdio.h> void merge_sort(int *a,int *b,int x,int y) { if(y-x>1) { int mx(y-x)/2;//中间点的坐标 int px,qm,ix; merge_sort(a,b,x,m); merge_sort(a,b,m,y); while(p<m||q<y) { if(q>y||(p<m&&a[p]<a[q])) b[i]…

SSD+caffe︱Single Shot MultiBox Detector 目标检测+fine-tuning(二)

承接上一篇SSD介绍&#xff1a;SSDcaffe︱Single Shot MultiBox Detector 目标检测&#xff08;一&#xff09; 如果自己要训练SSD模型呢&#xff0c;关键的就是LMDB格式生成&#xff0c;从官方教程weiliu89/caffe来看&#xff0c;寥寥几行code&#xff0c;但是前面的数据整理…

把图片存成视频 python

tips: 1.保存的图片大小一定要一样 2.图像做好是标准的视频格式大小 3.图片要和视频size一样大小 代码如下 # -*- coding:utf8 -*- import os import cv2 import numpy as np import cv2.cv as cv path /home/m/mycode/cv filelist os.listdir(path) total_num len(f…

sdut 双向队列(STL)

deque<ll>q;//定义一个双向队列q&#xff0c;类型为long long q.push_front(a);//将a从队首插入队列 q.push_back(a);//将a从队尾插入队列 q.pop_front();//队首弹掉一个元素 q.pop_back();//队尾弹出一个元素 aq.front();//返回队首元素 aq.back();//返回队尾元素 aq.si…

给文件重命名

# -*- coding:utf8 -*-import osclass BatchRename():批量重命名文件夹中的图片文件def __init__(self):self.path home/l/imagedef rename(self):filelist os.listdir(self.path)total_num len(filelist)i 0for item in filelist:if item.endswith(.jpg):src os.path.joi…

pip install scikit-image on windows 失败 解决方案

到官网下载包 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-image 我们下载 scikit_image‑0.13.0‑cp35‑cp35m‑win_amd64.whl 也可到我的CNDS下载 安装时会出现一下错误 scikit_image-0.13.0-cp34-none-win_amd64.whl is not a supported wheel on this platform…