使用Scrapy爬取我主良缘所有图片

目标网址:http://www.7799520.com/jiaoyou.html

一 创建项目:

scrapy startproject 项目名(我这里是wzlySpider)

进入创建好的wzlySpider 目录文件下

创建爬虫文件

scrapy genspider wzly www.7700520.com

  注意:genspider命令会使用Scrapy默认的爬虫模板创建爬虫文件,当然这个文件也可以自己编写,但是推荐使用命令创建。

二 编写爬虫

创建好爬虫后,使用编辑器打开项目中的爬虫文件进行编写:

wzly.py 爬虫文件

# -*- coding: utf-8 -*-
import scrapy
import json

class WzlySpider(scrapy.Spider):
    name = ‘wzly‘
    allowed_domains = [‘7799520.com‘]

    # 这里使用列表推导式
    start_urls = [f‘http://www.7799520.com/api/user/pc/list/search?marry=1&page={page}‘ for page in range(1, 100)]

    # 解析响应
    def parse(self, response):
        html = response.text
        # 转换json格式
        json_data = json.loads(html)
        # 获取信息  返回是列表
        for i in json_data["data"]["list"]:
            # i 是个字典
            img_url = i["avatar"]
            item = {
                "img_url": img_url
            }
            yield item

重点

  • name是爬虫的名字,是在genspider的时候指定的。
  • allowed_domains是爬虫能抓取的域名,爬虫只能在这个域名下抓取网页,可以不写。
  • start_urls是Scrapy抓取的网站,是可迭代类型,当然如果有多个网页,列表中写入多个网址即可,常用列表推导式的形式。
  • parse称为回调函数,该方法中的response就是start_urls网址发出请求后得到的响应。当然也可以指定其他函数来接收响应

编写 pipelines.py 管道文件

import scrapy

from scrapy.pipelines.images import ImagesPipeline
from scrapy.exceptions import DropItem

class wzlyImagePipeline(ImagesPipeline):

    def get_media_requests(self, item, info):
        yield scrapy.Request(item["img_url"])

    def item_completed(self, results, item, info):
        image_path = [x[‘path‘] for ok, x in results if ok]
        if not image_path:
            raise DropItem("该Item没有图片")
        return item

 

设置 settings.py 配置文件

1、激活管道文件

ITEM_PIPELINES = {
   ‘wzlySpider.pipelines.wzlyImagePipeline‘: 300,
}

  注意:300 表示执行顺序 ,一般为0-1000,数字越小执行顺序越大

2、配置保存图片信息

IMAGES_STORE = r‘D:\\wzly‘    # 图片存储路径
IMAGES_EXPIRES = 90             # 过期天数
IMAGES_MIN_HEIGHT = 100         # 图片的最小高度
IMAGES_MIN_WIDTH = 100          # 图片的最小宽度

三 运行爬虫

在 /wzlySpider 目录下运行scrapy crawl wzly 即可运行爬虫项目。运行截图如下:

更多详细信息,请参考:Scrapy官方文档

原文地址:https://www.cnblogs.com/renshaoqi/p/11177569.html

时间: 2024-10-02 01:30:17

使用Scrapy爬取我主良缘所有图片的相关文章

Scrapy爬取美女图片续集 (原创)

上一篇咱们讲解了Scrapy的工作机制和如何使用Scrapy爬取美女图片,而今天接着讲解Scrapy爬取美女图片,不过采取了不同的方式和代码实现,对Scrapy的功能进行更深入的运用. 在学习Scrapy官方文档的过程中,发现Scrapy自身实现了图片和文件的下载功能,不需要咱们之前自己实现图片的下载(不过原理都一样). 在官方文档中,我们可以看到下面一些话:Scrapy为下载item中包含的文件(比如在爬取到产品时,同时也想保存对应的图片)提供了一个可重用的 item pipelines .

Scrapy爬取美女图片 (原创)

有半个月没有更新了,最近确实有点忙.先是华为的比赛,接着实验室又有项目,然后又学习了一些新的知识,所以没有更新文章.为了表达我的歉意,我给大家来一波福利... 今天咱们说的是爬虫框架.之前我使用python爬取慕课网的视频,是根据爬虫的机制,自己手工定制的,感觉没有那么高大上,所以我最近玩了玩 python中强大的爬虫框架Scrapy. Scrapy是一个用 Python 写的 Crawler Framework ,简单轻巧,并且非常方便.Scrapy 使用 Twisted 这个异步网络库来处理

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

第三百三十四节,web爬虫讲解2-Scrapy框架爬虫-Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻标题和rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有

scrapy爬取斗图表情

用scrapy爬取斗图表情,其实呀,我是运用别人的博客写的,里面的东西改了改就好了,推存链接" http://www.cnblogs.com/jiaoyu121/p/6992587.html " 首先建立项目:scrapy startproject doutu 在scrapy框架里先写自己要爬取的是什么,在item里面写. import scrapyclass DoutuItem(scrapy.Item): # define the fields for your item here

Scrapy爬取美女图片第三集 代理ip(上) (原创)

首先说一声,让大家久等了.本来打算520那天进行更新的,可是一细想,也只有我这样的单身狗还在做科研,大家可能没心思看更新的文章,所以就拖到了今天.不过忙了521,522这一天半,我把数据库也添加进来了,修复了一些bug(现在肯定有人会说果然是单身狗). 好了,废话不多说,咱们进入今天的主题.上两篇 Scrapy爬取美女图片 的文章,咱们讲解了scrapy的用法.可是就在最近,有热心的朋友对我说之前的程序无法爬取到图片,我猜应该是煎蛋网加入了反爬虫机制.所以今天讲解的就是突破反爬虫机制的上篇 代理

scrapy爬取西刺网站ip

# scrapy爬取西刺网站ip # -*- coding: utf-8 -*- import scrapy from xici.items import XiciItem class XicispiderSpider(scrapy.Spider): name = "xicispider" allowed_domains = ["www.xicidaili.com/nn"] start_urls = ['http://www.xicidaili.com/nn/']

Scrapy爬取慕课网(imooc)所有课程数据并存入MySQL数据库

爬取目标:使用scrapy爬取所有课程数据,分别为 1.课程名 2.课程简介 3.课程等级 4.学习人数 并存入MySQL数据库  (目标网址  http://www.imooc.com/course/list) 一.导出数据文件到本地 1.新建imooc项目 1 scrapy startproject imooc 2.修改 items.py,添加项目item 1 from scrapy import Item,Field 2 class ImoocItem(Item): 3 Course_na

scrapy爬取豆瓣电影top250

1 # -*- coding: utf-8 -*- 2 # scrapy爬取豆瓣电影top250 3 4 import scrapy 5 from douban.items import DoubanItem 6 7 8 class DoubanspiderSpider(scrapy.Spider): 9 name = "doubanspider" 10 # allowed_domains = ["movie.douban.com/top250"]注意这里的主页限制

【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于它是一个框架,任何人都可