笔记——scrapy 抓取图片

news/2024/10/30 9:30:07/

今天来学习一下使用scrapy对图片的进行抓取

1. 创建项目

scrapy startproject xiaohuascrapy

创建spider文件,取名xiaohua.py

2.定义 Item

import scrapy
from scrapy.item import Item, Field
class XiaohuascrapyItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()file_urls = scrapy.Field()files = scrapy.Field()

3.编写spider文件

# -*- coding: utf-8 -*-
import scrapy
from xiaohuascrapy.items import XiaohuascrapyItemwords = '张馨予'class XiaohuaSpider(scrapy.Spider):name = "xiaohua"allowed_domains = ["baidu.com"]custom_settings = {#重写存储路径'FILES_STORE' : '/图片/baidu/%s' % words}pn = 0def __init__(self , keywords = '' , *args , **kwargs):super(XiaohuaSpider , self).__init__(*args , **kwargs)self.url = 'http://image.baidu.com/search/flip?tn=baiduimage&word=' + wordsself.start_urls = [self.url]def parse(self, response):item = XiaohuascrapyItem()item['file_urls'] = response.selector.re(r'''"objURL":"(http://[^"]+?)"''')yield itemself.pn += 20yield scrapy.Request('%s%s%d' % (self.url , '&pn=' , self.pn) , self.parse)

4.设置setting文件

BOT_NAME = 'xiaohuascrapy'SPIDER_MODULES = ['xiaohuascrapy.spiders']
NEWSPIDER_MODULE = 'xiaohuascrapy.spiders'
USER_AGENTS = ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",]# Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = 'xiaohuascrapy (+http://www.yourdomain.com)'# Obey robots.txt rules
ROBOTSTXT_OBEY = False
COOKIES_ENABLED = False
ITEM_PIPELINES = {'scrapy.pipelines.files.FilesPipeline': 100,
}
LOG_LEVEL = 'DEBUG'

到这里,基本就结束了,运行项目

scrapy crawl xiaohua
就会在磁盘根目录下生成一个图片文件夹,打开就可以看到图片了。

http://www.ppmy.cn/news/416604.html

相关文章

S2-045、S2-046

前言 S2-045依然是一个Ognl表达式注入导致的RCE漏洞,且漏洞很严重。另外,还是建议读者阅读本篇文章前先看下系列文章的第一篇。 正文 依然是第一篇文章中讲过,StrutsPrepareFilter的doFilter方法中,在获取action mapper前会对Http…

小马哥--高仿三星S7 主板型号I3700曲面屏6735刷机图示 曲面屏版本较多 看清版本信息

山寨三星S7版本较多 A887 p608Q S205 S923 I8000 系列版本 I3700 是曲面屏 精仿机 上图

hadoop中的几个核心配置

说在前面 工作环境:VMware Workstation 12 Pro 12.5.6 build-5528349linux版本:CentOS-7-x86_64-Minimal-1611.isoJDK版本:jdk-8u65-linux-x64.tar.gzHadoop版本:hadoop-2.7.6.tar.gz hadoop中几个核心的配置如下 配置临时目录…

配置高可用(名称节点高可用)

本文详细配置名称节点的高可用,什么是高可用可参考官方文档 说在前面 工作环境:VMware Workstation 12 Pro 12.5.6 build-5528349linux版本:CentOS-7-x86_64-Minimal-1611.isoJDK版本:jdk-8u65-linux-x64.tar.gzHadoop版本&#…

Echarts柱状图,曲线图

实现地址 var yMax 5; var dataShadow []; var data [4.2, 3.8, 4.8, 3.5, 2.9, 2.8, 3, 5]for (var i 0; i < data.length; i) {dataShadow.push(yMax); } option {grid: {bottom: "15%"},tooltip: {trigger: "axis",axisPointer: {type: "…

多表连接面试题:ERROR:Not unique table/alias

class_info idclass_name2s2045s2051s2077s203 match_info idhost_idguest_idmatch_timematch_result1212018-12-1045:622272018-12-1655:503 4 5 1、题目需求&#xff1a;已知某学校组织篮球比赛&#xff0c;现在有两张表class_info 和 match_info&#xff0c;需要通…

Fatal signal XX (SIGSEGV) 常见解决思路 backtrace

Fatal signal XX (SIGSEGV)常用解决思路 ****例如&#xff1a;**** 1、log信息&#xff1a; (摘自网络) 02-13 14:56:12.140 6180 11596 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 11596 (pool_albumlabel) 02-13 14:56:12.149 4549 4579 D ForegroundUtils: …

Android中使用addr2line来分析native信息

系统&#xff1a;Ubuntu12.04 手机系统&#xff1a;Android5.0 在Android的开发过程中有会有很多的native bug必须要用addr2line来分析&#xff0c;并且这个工具也非常的好用。下面我们来看看具体的使用。 烧录到手机上的版本和你电脑上的编译出的版本要一致&#xff0c;这个…