14.爬虫
(写在每篇深度学习文章系列的前面,该系列的文章是我2019年做毕设时的步骤总结,是能实现的,不和其他很多博客一样瞎糊弄人浪费时间。写下这些文章一方面为了方便后来者,一方面也为了自己以后的步骤复现等。
另外,如果我给的那些参考帖子看不了了,可以到我的博客下载区那里去下载对应的压缩文件,我把里面所有的链接网页都截了长图,所以不用担心我给的参考帖子链接失效。
其次,如果我给的参考链接侵犯了该链接博主的权益,烦请告知,必当第一时间删掉。由于本人参考帖子较多,如果侵犯了请原谅,我会删掉。也谢谢各位在路上帮助过我的,谢谢了。
还有就是,如果积分太高了,请告诉我怎么把积分降低,我也不太清楚怎么弄,积分会随着下载次数增加逐渐增加。你知道的话怎么降的话可以留言给我。
emm, 最后的最后,如果你觉得这篇博文有用,请点个赞哩,感谢!~~)
(博客下载区:https://download.csdn.net/download/lininggggggg/11224814
或者在下载区搜索名字:14.爬虫.zip–深度学习文章14)


正文


代码一:

import requests
import osdef getManyPages(keyword,pages):params=[]for i in range(30,30*pages+30,30):params.append({'tn': 'resultjson_com','ipn': 'rj','ct': 201326592,'is': '','fp': 'result','queryWord': keyword,'cl': 2,'lm': -1,'ie': 'utf-8','oe': 'utf-8','adpicid': '','st': -1,'z': '','ic': 0,'word': keyword,'s': '','se': '','tab': '','width': '','height': '','face': 0,'istype': 2,'qc': '','nc': 1,'fr': '','pn': i,'rn': 30,'gsm': '1e','1488942260214': ''})url = 'https://image.baidu.com/search/acjson'urls = []for i in params:urls.append(requests.get(url,params=i).json().get('data'))return urlsdef getImg(dataList, localPath):if not os.path.exists(localPath):  # 新建文件夹os.mkdir(localPath)x = 0for list in dataList:for i in list:if i.get('thumbURL') != None:print('正在下载:%s' % i.get('thumbURL'))ir = requests.get(i.get('thumbURL'))open(localPath + '%d.jpg' % x, 'wb').write(ir.content)x += 1else:print('图片链接不存在')if __name__ == '__main__':# dataList = getManyPages('橙子',10)  # 参数1:关键字,参数2:要下载的页数dataList = getManyPages('橙子', 30)  # 参数1:关键字,参数2:要下载的页数getImg(dataList, 'E:\GraduationProject\Data\web_crawler\photo/')  # 参数2:指定保存的路径

代码二:

# -*- coding: utf-8 -*-
"""根据搜索词下载百度图片"""
import re
import sys
import urllibimport requestsdef get_onepage_urls(onepageurl):"""获取单个翻页的所有图片的urls+当前翻页的下一翻页的url"""if not onepageurl:print('已到最后一页, 结束')return [], ''try:html = requests.get(onepageurl)html.encoding = 'utf-8'html = html.textexcept Exception as e:print(e)pic_urls = []fanye_url = ''return pic_urls, fanye_urlpic_urls = re.findall('"objURL":"(.*?)",', html, re.S)fanye_urls = re.findall(re.compile(r'<a href="(.*)" class="n">下一页</a>'), html, flags=0)fanye_url = 'http://image.baidu.com' + fanye_urls[0] if fanye_urls else ''return pic_urls, fanye_urldef down_pic(pic_urls):"""给出图片链接列表, 下载所有图片"""for i, pic_url in enumerate(pic_urls):try:pic = requests.get(pic_url, timeout=15)string = str(i + 1) + '.jpg'with open(string, 'wb') as f:f.write(pic.content)print('成功下载第%s张图片: %s' % (str(i + 1), str(pic_url)))except Exception as e:print('下载第%s张图片时失败: %s' % (str(i + 1), str(pic_url)))print(e)continueif __name__ == '__main__':keyword = '果树上黄色橘子'  # 关键词, 改为你想输入的词即可, 相当于在百度图片里搜索一样url_init_first = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1497491098685%5E00_1519X735&word='url_init = url_init_first + urllib.parse.quote(keyword, safe='/')all_pic_urls = []onepage_urls, fanye_url = get_onepage_urls(url_init)all_pic_urls.extend(onepage_urls)fanye_count = 0  # 累计翻页数while 1:onepage_urls, fanye_url = get_onepage_urls(fanye_url)fanye_count += 1# print('第页' % str(fanye_count))if fanye_url == '' and onepage_urls == []:breakall_pic_urls.extend(onepage_urls)down_pic(list(set(all_pic_urls)))

代码三:

# coding =utf-8
# 爬取桔子一张图片import urllib.request
import re
def getHtml(url):page = urllib.request.urlopen(url)  # 打开页面html = page.read() # 获取目标页面的源码return html
if __name__=="__main__":html = getHtml("http://www.quanjing.com/category/118291.html")reg = "http://.+?\\.jpg"img = re.compile(reg)html = html.decode('utf-8')imglist = re.findall(img, html)print(imglist[0])urllib.request.urlretrieve(imglist[0], 'D:/1.jpg')

代码四:


#!-*- coding:utf-8 -*-
# FileName : img.py
# Author : CSDN_fzs
# Data : 2018/01/10import re  # 导入正则表达式模块
import requests  # python HTTP客户端 编写爬虫和测试服务器经常用到的模块
import random  # 随机生成一个数,范围[0,1]# 定义函数方法
def spiderPic(html, keyword):print('正在查找 ' + keyword + ' 对应的图片,下载中,请稍后......')for addr in re.findall('"objURL":"(.*?)"', html, re.S):  # 查找URLprint('正在爬取URL地址:' + str(addr)[0:30] + '...')  # 爬取的地址长度超过30时,用'...'代替后面的内容try:pics = requests.get(addr, timeout=5)  # 请求URL时间(最大10秒)except requests.exceptions.ConnectionError:print('您当前请求的URL地址出现错误')continuefq = open('E:\\GraduationProject\\Data\\web_crawler\\picture\\' + (keyword + '_' + str(random.randrange(0, 10000, 10)) + '.jpg'), 'wb')  # 下载图片,并保存和命名fq.write(pics.content)fq.close()# python的主方法
if __name__ == '__main__':word = input('请输入你要搜索的图片关键字:')result = requests.get(# 'https://www.quanjing.com/search.aspx?imageUType=p&q=%E6%A9%99%E5%AD%90#橙子||1|100|1|2||||p||')'http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=' + word)
# 调用函数
spiderPic(result.text, word)

Tensorflow+SSD+Yolo(目标检测)文章14:爬虫相关推荐

  1. 使用自己的数据训练MobileNet SSD v2目标检测--TensorFlow object detection

    使用自己的数据训练MobileNet SSD v2目标检测--TensorFlow object detection 1. 配置 1.1 下载models-1.12.0 2. 准备数据集 3. 配置文 ...

  2. 【论文汇总】2D目标检测文章汇总,持续更新

    记录自己比较感兴趣的2D目标检测文章 分类 1.模型架构相关 2.YOLO系列 3.分类与回归不一致问题 4.标签分配 5.DETR系列 6.知识蒸馏 7.FPN相关 8.小目标检测系列 9.数据增强 ...

  3. OpenCvSharp (C# OpenCV) DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别、骰子识别、菜品识别)(附源码)

    本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别.骰子识别.菜品识别)! 前言: 下 ...

  4. python实现目标识别眼镜_用Python快速实现YOLO目标检测

    文章也同步更新到微信公众号:R语言和Python学堂想获取本文完整代码和数据的下载链接,可关注微信公众号"R语言和Python学堂",并回复发文日期"20181223&q ...

  5. 瞬间洞察万物:YOLO目标检测算法的黑科技全揭秘

    目录 简介与背景知识: 数据集准备: 模型选择和预训练: 模型构建和训练: 目标检测与推断: 性能优化与改进: 实例应用和扩展: yolo各版本: 总结: 简介与背景知识: ​ YOLO(You On ...

  6. 【自制数据集自动标注】yolo目标检测 voc格式 单调无遮挡背景单个物体自制数据集自动标注

    垃圾分类目标检测数据集准备 数据集背景: 参加全国大学生工程训练综合能力竞赛智能生活垃圾分类赛道时深感采集制作数据集过分彰显"有多少人工,就有多少智能"的惨痛,为了不辛苦麻烦身边小 ...

  7. 基于flask的YOLO目标检测web服务及接口

    这个小项目是基于flask微型目标检测服务.使用的是YOLOv3版本,使用的是在coco数据集上已经训练好的参数.整个目录结构如下(我运行的环境是window10,pycharm): 其中: cfg是 ...

  8. 目标检测实战必会!4种基于YOLO目标检测(Python和C++两种版本实现)

    目标检测实战必会!4种基于YOLO目标检测(Python和C++两种版本实现) AI算法修炼营 1周前 以下文章来源于极市平台 ,作者CV开发者都爱看的 极市平台 专注计算机视觉前沿资讯和技术干货,官 ...

  9. 【ROS机器人系统】自主导航+YOLO目标检测+语音播报

    文章目录 一.总体功能设计 二.实验环境 三.演示 四.场景搭建.建图与导航模块 4.1 场景搭建 4.2 小车模型 4.3 导航模块 (1)安装依赖 (2)从github下载的文件中的test_ws ...

  10. 今晚直播写代码|英伟达工程师亲授如何加速YOLO目标检测

    NVIDIA TensorRT是一种高性能深度学习推理优化器和运行时加速库,可以为深度学习推理应用程序提供低延时和高吞吐量.通过TensorRT,开发者可以优化神经网络模型,以高精度校对低精度,最后将 ...

最新文章

  1. IAR在线调试时用DEBUG打印调试信息
  2. apr_pool -- 内存池
  3. Orika:将JAXB对象映射到业务/域对象
  4. 大型网站技术架构(六)--网站的伸缩性架构(转)
  5. 配置eclipse插件
  6. 数据挖掘建模过程——思维导图
  7. CDH-CM资源下载!!免费!!!
  8. matlab中的freqz函数是什么意思,的频率响应函数freqz().ppt
  9. 8-17 UILabel 自定义字体
  10. linux的打包压缩文件,linux打包文件,压缩文件
  11. DOM元素节点属性outerHTML和innerHTML
  12. Vs2010中文版MSDN 安装方法
  13. 压缩——实测rar压缩的各种选项对文件压缩的效果(包括固实压缩)
  14. 手机音乐播放器页面html代码,仿酷狗html5手机音乐播放器主要部分代码
  15. 动态规划—钢条切割问题与01背包问题
  16. 双十一大促直通车引流,低客单价的产品怎样引流 低客单价怎样开直通车
  17. Lazadashopee代运营分享:马来西亚跨境电商市场分析热卖品类推荐
  18. 一款恋爱星座男女配对微信小程序源码
  19. Lighthouse performance scoring
  20. Linux笔记 No.22---(Linux - PAM)

热门文章

  1. Python语言程序设计 第0周第1周 Python课程导学、基本语法元素
  2. 学习HTML5音频录制
  3. 河北保定PMP考试考点在哪里?
  4. HDU 4411Arrest(最小费用最大流)
  5. smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。...
  6. java e次方,Java BigInteger求任意n(n∈N*)次方根的实现
  7. python的循环控制结构_Python的控制结构之For、While、If循环问题
  8. 靠「猜」答案获得顶会最佳论文,华人IOI金牌获得者找到复杂「鸡兔同笼」最简解法...
  9. 翰林网上阅卷系统 共享资源在行动
  10. 记一次对钓鱼邮件的实地反击