Scrapy 爬*度图片
最近有个需求是做人脸表情识别,要求比较简单:识别行人的微笑表情。
自己动手用yolo训练个识别器是容易做的。麻烦的是在哪里寻找训练数据。
以下记录一下用Scrapy爬百度数据的过程
环境:ubuntu 2004 conda python10.0 scrapy 2.7 别忘了Pillow,不安装这个默认不报错。
环境准备完后,
scrapy startproject scrapy_smile #项目名字随意cd scrapy_smile scrapy genspider baidu image.baidu.com #创建爬虫
import json
import re
from urllib import parse
import scrapy
from fake_useragent import UserAgent #这个会出问题,下载json文件到本地from ..items import SmilespiderItemclass BaiduSpider(scrapy.Spider):name = 'baidu'allowed_domains = ['image.baidu.com']word_origin = input("请输入搜索关键字:")max_down = input("要下载的数量:")count_per_page = 30word = parse.quote(word_origin)max = int(parse.quote(max_down))# word = '美女'# max =100url = "https://image.baidu.com/search/acjson?tn=resultjson_com&logid=11578100820615399278&ipn=rj&ct=201326592&is=&fp=result&fr=&word={}&cg=girl&queryWord={}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&expermode=&nojc=&isAsync=&pn={}&rn={}&gsm=7800000000000078&1666847835228="def start_requests(self):ua=UserAgent(path=r"../fake_useragent.json")headers = {'User-Agent': str(ua.random)}for pn in range(0, self.max, self.count_per_page):# _url = f'{self.url}&pn={pn}'_url =self.url.format(self.word,self.word,pn,self.count_per_page)yield scrapy.Request(url=_url, callback=self.parse, headers=headers)def parse(self, response):# print(response.text)regex = '"thumbURL":"(.*?)"'pattern = re.compile(regex, re.S)links = pattern.findall(response.text)item = SmilespiderItem()item["word"] = self.wordfor i in links:item["link"] = iyield item
这个url 可能需要经常换。*度有反*虫机制。遇到这种情况换一下url就行了。
主要几个参数名字 word,word,pn,rn 关键字,关键字,开始图片索引,每页的图片个数
下载图片的关键文件pipline,没啥需要说的直接看代码。
import hashlib
import urllibfrom scrapy.utils.python import to_bytes
from itemadapter import ItemAdapter
from scrapy import Request
from scrapy.pipelines.images import ImagesPipelineclass SmilespiderPipeline(ImagesPipeline):# def process_item(self, item, spider):# print("process_item",item)# return itemword=''count = 0def get_media_requests(self, item, info):# meta={"word":item['word']}self.count+=1print(self.count)self.word = urllib.parse.unquote( item['word'])yield Request(item['link'])def file_path(self, request, response=None, info=None, *, item=None):image_guid = hashlib.sha1(to_bytes(request.url)).hexdigest()# word = response.meta['word']# print( response.meta)fname = f'{self.word}/{image_guid}.jpg'return fname
设置里面图片存储路径要写
LOG_LEVEL ='WARNING' 根据需要设置
ITEM_PIPELINES = {'smileSpider.pipelines.SmilespiderPipeline': 100,
}
LOG_LEVEL ='WARNING'
IMAGES_STORE = './images'
最后在项目文件夹根目录写个开始
from scrapy import cmdline
cmdline.execute('scrapy crawl baidu'.split(' '))
试运行一下
Scrapy 爬*度图片相关推荐
- Scrapy爬取美女图片续集 (原创)
上一篇咱们讲解了Scrapy的工作机制和如何使用Scrapy爬取美女图片,而今天接着讲解Scrapy爬取美女图片,不过采取了不同的方式和代码实现,对Scrapy的功能进行更深入的运用. 在学习Scra ...
- Scrapy 爬取今日头条街拍图片
scrapy 爬取今日头条图片保存至本地 之前用 requests 爬取过今日头条街拍的图片,当时只是爬取每篇文章的缩略图,今天尝试用 scrapy 来大规模爬取街拍详细图片. 分析页面 今日头条的内 ...
- Scrapy爬取ammmi图片
Scrapy爬取ammmi图片 相关配置: python version:3.7 IDE:Pycharm environment:windows10 Framework:Scrapy 相关链接: We ...
- Scrapy爬图片入门——静态网站翻页爬虫
接上文爬图片下载: Scrapy爬图片入门--静态网站_ahc176的博客-CSDN博客 翻页: 通过观察发现url变化是非常有规律的. 修改image.py: 代码: import scrapyfr ...
- Scrapy爬取美女图片续集
上一篇咱们讲解了Scrapy的工作机制和如何使用Scrapy爬取美女图片,而今天接着讲解Scrapy爬取美女图片,不过采取了不同的方式和代码实现,对Scrapy的功能进行更深入的运用. 在学习Scra ...
- scrapy爬取美女图片
使用scrapy爬取整个网站的图片数据.并且使用 CrawlerProcess 启动. 1 # -*- coding: utf-8 -* 2 import scrapy 3 import reques ...
- 利用scrapy爬取京东移动端的图片素材和商品信息
有一个练习项目需要一些带分类信息的商品测试图片,从现有的电商网站爬取是个不错的选择.刚好最近又在练习scrapy的使用,这一篇记录一下用scrapy爬取京东的图片素材并保存商品信息的思路. 文中代码共 ...
- 手把手教你用Scrapy 爬取斗鱼妹子头像 下载图片
项目展示: 项目结构: 成果: 1.新建项目 确保安装了所用到的库 scrapy image Pillow pip install scrapy pip install image pip insta ...
- Scrapy爬取当当网图书销售前100
scrapy爬取当当网图书畅销榜 一.采集任务 爬取当当网图书畅销榜信息,获取热销图书前500相关数据. 二.网页解析 1. 打开当当网,按照图书榜>图书畅销榜 进入当当网图书畅销榜[http: ...
最新文章
- HDOJ 2012 素数判定 解题报告
- vs.net设计器里加载派生窗口类时要执行父窗口的Form_Load方法
- Boost.python 编译和使用
- 1071 Speech Patterns (25 分)【难度: 简单 / 知识点: 哈希表 字符串】
- SpringBoot中实现批量文件上传
- ug导出step文件失败_解决UG导出CAD图纸失败的问题
- GDB技巧:使用checkpoint解决难以复现的Bug
- Spring boot (5):Spring data jpa 的使用
- 这是我看过最精彩的回答
- POJ 2054 Color a Tree
- linux 查找文件_LINUX常用命令全集
- 【Level 08】U06 Good Feeling L5 Now showing in theaters
- 智方8000系进销存管理系统 杀毒软件下载
- doom3中PDA信息
- 物流行业智能化转型的幕后推手!盘点机器视觉物流分拣四大优势
- 人工智能技术知识图谱
- 百万调音师—Audition EQ均衡器
- 个人空间html源码,HTML常用代码段 - lynn_xiao的个人空间 - OSCHINA - 中文开源技术交流社区...
- 形容等待时间长的句子_形容等待的时间很漫长的句子
- 每日算法刷题Day5-平方矩阵II和III、蛇形矩阵图解
热门文章
- AI批改英语作文行不行?免费,覆盖雅思考研四六级,打分评语纠错都得有 | 测评...
- Python入门实例之那些年踩过的狗屎(Updating)
- 文化:你所在的团队,有多少人敢讲真话?
- [转帖]高通推出八核笔电处理器骁龙8cx 能超英特尔吗?
- SQL 语句从表中选取前5行,后5行的记录,以及%用法
- excel表格如何设置下拉选项?
- 自己组装摄像头软件opencv无法打开的问题
- 线下大数据服务商惟客数据完成3000万元pre-A轮融资,IDG资本领投
- 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(6)-不正经的隐形弹窗
- excel分类_最简单的Excel分类汇总教程!三分钟包学包会!