一:基础版(抓取首页图片)

爬虫py文件代码:

 1 # -*- coding: utf-8 -*-
2 import scrapy
3 import sys
4 import io
5 from scrapy.selector import Selector
6 from scrapy.http import Request
7 from ..items import Day96XiaohuaItem
8 import re
9 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
10
11
12 class XiaohuaSpider(scrapy.Spider):
13 name = 'xiaohua'
14 allowed_domains = ['www.xueshengmai.com/hua/']
15 start_urls = ['http://www.xueshengmai.com/hua/']
16
17 def parse(self, response):
18 # ------------持久化数据--------------
19 hxs = Selector(response=response).xpath("//div[@class='item_t']/div[@class='img']/a/img").extract()
20 # print(hxs)
21 for i in hxs:
22 # print(i)
23 title = re.findall("alt=(.*) src=",i)[0].strip('"')+".jpg"
24 src = "http://www.xueshengmai.com%s"%re.findall("src=(.*)>",i)[0].strip('"')
25 print(title,src)
26 item_obj = Day96XiaohuaItem(title=title, src=src)
27 yield item_obj

items.py 代码:

1 import scrapy
2
3
4 class Day96XiaohuaItem(scrapy.Item):
5 # define the fields for your item here like:
6 # name = scrapy.Field()
7 title=scrapy.Field()
8 src=scrapy.Field()

pipelines代码:

import requests

class Day96XiaohuaPipeline(object):
def process_item(self, item, spider):
file_path="imgs/%s"%item["title"]
file_src=item["src"]
f=open(file_path,"wb")
img_date=requests.get(file_src)
f.write(img_date.content)
f.close()

二:分页抓取校花网图片

下面代码和上面如出一辙,只将不同的代码块写下:

 1 # -*- coding: utf-8 -*-
2 import scrapy
3 import sys
4 import io
5 from scrapy.selector import Selector
6 from scrapy.http import Request
7 from ..items import Day96XiaohuaItem
8 import re
9
10 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
11
12
13 class XiaohuaSpider(scrapy.Spider):
14 name = 'xiaohua'
15 allowed_domains = ['www.xueshengmai.com/hua/']
16 start_urls = ['http://www.xueshengmai.com/hua/']
17
18 def parse(self, response):
19 # ------------持久化数据--------------
20 hxs = Selector(response=response).xpath("//div[@class='item_t']/div[@class='img']/a/img").extract()
21 # print(hxs)
22 for i in hxs:
23 # print(i)
24 title = re.findall("alt=(.*) src=", i)[0].strip('"') + ".jpg"
25 src = "http://www.xueshengmai.com%s" % re.findall("src=(.*)>", i)[0].strip('"')
26 print("正在努力抓取校花网图片...",title, src)
27 item_obj = Day96XiaohuaItem(title=title, src=src)
28 yield item_obj
29
30 hxs2 = Selector(response=response).xpath("//div[@class='page_num']/a").extract()
31 for i in hxs2:
32 page_number = re.findall(">(.*)<", i)[0]
33 # print("=========",page_number)
34 if page_number not in ["首页", "上一页", "下一页", "尾页"]:
35 url = "http://www.xueshengmai.com/list-1-%s.html" % page_number
36 # print("-------", url)
37 # 将新要访问的url添加到调度器
38 yield Request(url=url, callback=self.parse,dont_filter=True)

同时应该在settings中加上一句:

1 DEPTH_LIMIT = 1

否则程序将会一直深入下载,直到网站图片资源穷尽...

scrapy抓取校花网图片的更多相关文章

  1. Go语言实战-爬取校花网图片

    一.目标网站分析 爬取校花网http://www.xiaohuar.com/大学校花所有图片. 经过分析,所有图片分为四个页面,http://www.xiaohuar.com/list-1-0.htm ...

  2. python实战项目 — 爬取 校花网图片

    重点: 1.  指定路径创建文件夹,判断是否存在 2. 保存图片文件 # 获得校花网的地址,图片的链接 import re import requests import time import os ...

  3. Scrapy爬虫框架之爬取校花网图片

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  4. scrapy爬取校花网男神图片保存到本地

    爬虫四部曲,本人按自己的步骤来写,可能有很多漏洞,望各位大神指点指点 1.创建项目 scrapy startproject xiaohuawang scrapy.cfg: 项目的配置文件xiaohua ...

  5. Python-爬取校花网视频(单线程和多线程版本)

    一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...

  6. python爬虫基础应用----爬取校花网视频

    一.爬虫简单介绍 爬虫是什么? 爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序. 爬虫程序包括哪些模块? python中的爬虫程序主要包括,re ...

  7. Scrapy爬虫实例——校花网

    学习爬虫有一段时间了,今天使用Scrapy框架将校花网的图片爬取到本地.Scrapy爬虫框架相对于使用requests库进行网页的爬取,拥有更高的性能. Scrapy官方定义:Scrapy是用于抓取网 ...

  8. 二、Item Pipeline和Spider-----基于scrapy取校花网的信息

    Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...

  9. Requests 校花网图片爬取

    纪念我们闹过的矛盾,只想平淡如水 import requestsimport reurl = 'http://www.xiaohuar.com/list-1-%s.html'for i in rang ...

  10. 第六篇 - bs4爬取校花网

    环境:python3  pycharm 模块:requests  bs4  urlretrieve  os  time 第一步:获取网页源代码 import requests from bs4 imp ...

随机推荐

  1. kafka集群四、权限增加ACL

    系列导航 一.kafka搭建-单机版 二.kafka搭建-集群搭建 三.kafka集群增加密码验证 四.kafka集群权限增加ACL 五.kafka集群__consumer_offsets副本数修改 ...

  2. vscode prettier保存代码时自动格式化

    https://blog.csdn.net/qq_37815596/article/details/109225879

  3. sql server主从同步

    sql server主从方案介绍   sql server 作为目前主流的数据库,用户遍布世界各地.sql server也有一些比较成熟的主备方案,目前主要有:复制模式(发布-订阅模式).镜像传输模式 ...

  4. java项目实战-mybatis-基本配置01-day22

    目录 0. mysql navicate链接分享 1. mvn坐标引入 2. mysql的核心配置文件 3. 返回值类型 别名 4. 将数据的配置提取配置文件 4. log4j修改日志输出 0. my ...

  5. 每天学五分钟 Liunx 111 | 存储篇:NFS

    NFS NFS(Network File System,网络文件系统),它可以通过网络让不同操作系统,不同机器共享彼此的文件. NFS 分为服务端和客户端.服务端提供共享的文件目录,客户端将该目录挂载 ...

  6. Scan Synthesis Practice

    不同上升沿触发器如何进行scan chain DFT实例 Synopsys 工具文档 Mentor DFT脚本 add_clocks 0 clk - 0表示上升沿 Synopsys DFT脚本 更改n ...

  7. 神经网络优化篇:详解局部最优的问题(The problem of local optima)

    局部最优的问题 在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,对局部最优的理解也发生了改变.向展示一下现在怎么看待局部最优以及深度学习中的优化问题. 这是 ...

  8. [转帖]聊聊字符串数据长度和nls_length_semantics参数

    字符串是我们设计数据库经常用到的类型,从传统的ASCII格式到UTF-8格式,不同应用需求对应不同的字符类型和长度配置.针对Oracle而言,最常用的类型无外乎char和varchar2两个基本类型. ...

  9. [转帖]JVM相关 - StackOverflowError 与 OutOfMemoryError

    https://zhuanlan.zhihu.com/p/265039643   7 人赞同了该文章 本文基于 Java 15 StackOverflowError 与 OutOfMemoryErro ...

  10. SQLServer 性能报表的学习与使用

    SQLServer 性能报表的学习与使用 背景 前面连续学习了 SQLServer如何优化等事宜. 但是一开始总是么有找到对应的问题解决思路 周天时想到了 SQLSERVER的MDW工具 但是并没有找 ...