scrapy之360图片爬取

#今日目标

**scrapy之360图片爬取**

今天要爬取的是360美女图片,首先分析页面得知网页是动态加载,故需要先找到网页链接规律,
然后调用ImagesPipeline类实现图片爬取

*代码实现*
so.py
```
# -*- coding: utf-8 -*-
import scrapy
import json
from ..items import SoItem

class SoSpider(scrapy.Spider):
    name = ‘so‘
    allowed_domains = [‘imaeg.os.com‘]

    # 重写
    def start_requests(self):
        url = ‘http://image.so.com/zjl?ch=beauty&sn={}&listtype=new&temp=1‘
        # 生成5页的地址,交给调度器
        for i in range(5):
            sn = i*30
            full_url = url.format(sn)
            yield scrapy.Request(
                url = full_url,
                callback = self.parse_image,
                dont_filter=False
            )

    def parse_image(self,response):
        html = json.loads(response.text)
        # 提取图片链接
        for img in html[‘list‘]:
            item = SoItem()
            item[‘img_link‘] = img[‘qhimg_url‘]

            yield item
```
item.py
```
import scrapy
class SoItem(scrapy.Item):
    # define the fields for your item here like:
    # 图片链接
    img_link = scrapy.Field()
```
pipelines.py
```
# 导入scrapy的图片管道类
from scrapy.pipelines.images import ImagesPipeline
import scrapy

# 1. 继承 ImagesPipeline
# 2. 重写 类内方法
class SoPipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        # 把图片链接发给调度器
        yield scrapy.Request(url = item[‘img_link‘],dont_filter=False)
```

settings.py
```
# Obey robots.txt rules
ROBOTSTXT_OBEY = False

CONCURRENT_REQUESTS = 10

DEFAULT_REQUEST_HEADERS = {
  ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8‘,
  ‘Accept-Language‘: ‘en‘,
  ‘User-Agent‘:‘Mozilla/5.0‘,
}

ITEM_PIPELINES = {
   ‘So.pipelines.SoPipeline‘: 300,
}
IMAGES_STORE = ‘/home/ccc/image/‘ #个人保存路径

```

原文地址:https://www.cnblogs.com/cxiaolong/p/11299701.html

时间: 2024-11-07 14:16:31

scrapy之360图片爬取的相关文章

爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式

目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 1. scrapy图片的爬取/基于管道类实现 2. 中间件的使用 3. selenium在scrapy中的应用 4. CrawlSpider 5. 分布式 5. 增量式 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 1. scrapy图片的爬取/基于管道类实现 爬取流程: 爬虫类中将解析到的图片

[Python_scrapy图片爬取下载]

welcome to myblog Dome地址 爬取某个车站的图片 item.py 中 1.申明item 的fields class PhotoItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() image_urls = scrapy.Field() images = scrapy.Field() pass spider 的image.py 导入头文件 from Phot

知乎高颜值图片爬取

.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font-style: normal; font

回车桌面图片爬取

回车桌面图片爬取 今天我们就来爬爬这个网站 https://tu.enterdesk.com/ 这个网站能爬的资源还是很多的,但我就写一个例子,其他的可以根据思路去写. 首先还是先来分析下这个网站的图片获取过程 我选择的是图库,先随便选择一个标签,我这选宠物吧 哟,我们再看看有没有翻页 开启F12(开发者工具) 用不习惯火狐,还是开谷歌来看吧 那么就访问看看?随便选取一个访问看看是不是能出图片 https://tu.enterdesk.com/chongwu/6.html 结果肯定是可以的啦 问

Python爬虫新手教程: 知乎文章图片爬取器

1. 知乎文章图片爬取器之二博客背景 昨天写了知乎文章图片爬取器的一部分代码,针对知乎问题的答案json进行了数据抓取,博客中出现了部分写死的内容,今天把那部分信息调整完毕,并且将图片下载完善到代码中去. 首先,需要获取任意知乎的问题,只需要你输入问题的ID,就可以获取相关的页面信息,比如最重要的合计有多少人回答问题.问题ID为如下标红数字 编写代码,下面的代码用来检测用户输入的是否是正确的ID,并且通过拼接URL去获取该问题下面合计有多少答案. import requests import r

糗图-图片爬取

糗图-图片爬取 主要思路 1.来到首页,查看主页有用图片存在html的规律 2.编写re提取图片路径 3.右键图片查看请求图片的具体路径 4.拼接图片请求路径 5.查看下一页界面的路径,找到界面请求路径规律 6.work,多界面爬取指定图片爬虫 import requests import re import os headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.3

千图网_性感美女图片爬取--图片懒加载

#爬取千图网性感美女模块的图片 #第一页:http://sc.chinaz.com/tupian/xingganmeinvtupian.html #第二页:http://sc.chinaz.com/tupian/xingganmeinvtupian_2.html #两种url结构不同,注意 可以使用if语句判断 import urllib.request import urllib.parse from lxml import etree import time import os #定义下载图

scrapy爬虫框架(四)-爬取多个网页

scrapy爬虫框架(四) 爬取多个网页 思路:通过判断句子控网站中,下一页是否还有a标签来获取网址,拼接后继续爬取,最终写入json文件中. juziSpider.py # -*- coding: utf-8 -*- import scrapy from juzi.items import JuziItem class JuzispiderSpider(scrapy.Spider): name = 'juziSpider' allowed_domains = ['www.juzikong.co

初识scrapy,美空网图片爬取实战

这俩天研究了下scrapy爬虫框架,遂准备写个爬虫练练手.平时做的较多的事情是浏览图片,对,没错,就是那种艺术照,我骄傲的认为,多看美照一定能提高审美,并且成为一个优雅的程序员.O(∩_∩)O~ 开个玩笑,那么废话不多说,切入正题吧,写一个图片爬虫. 设计思路:爬取目标为美空网模特照片,利用CrawlSpider提取每张照片的url地址,并将提取的图片url写入一个静态html文本作为存储,打开即可查看图片. 我的环境是win8.1, python2.7+Scrapy 0.24.4,如何配环境我