当前位置: 首页 > 面试题库 >

抓图下载图片

应俊爽
2023-03-14
问题内容

我从草率开始,我有第一个真正的问题。正在下载图片。这是我的蜘蛛。

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from example.items import ProductItem
from scrapy.utils.response import get_base_url

import re

class ProductSpider(CrawlSpider):
    name = "product"
    allowed_domains = ["domain.com"]
    start_urls = [
            "http://www.domain.com/category/supplies/accessories.do"
    ]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        items = []
        sites = hxs.select('//td[@class="thumbtext"]')
        number = 0
        for site in sites:
            item = ProductItem()
            xpath = '//div[@class="thumb"]/img/@src'
            item['image_urls'] = site.select(xpath).extract()[number]
            item['image_urls'] = 'http://www.domain.com' + item['image_urls']
            items.append(item)
            number = number + 1
        return items

当我报价时ITEM_PIPELINESIMAGES_STOREsettings.py这种方式,我得到了想要下载的图片的正确URL(将其粘贴到浏览器中以进行检查)。

但是当我取消报价时,出现以下错误:

raise ValueError('Missing scheme in request url: %s' % self._url')
exceptions.ValueError: Missing scheme in request url:h

而且我无法下载图片。

我已经搜寻了一整天,没有发现任何帮助。


问题答案:

我认为您抓取的图片网址是相对的。要构建绝对URL,请使用urlparse.urljoin:

def parse(self, response):
    ...
    image_relative_url = hxs.select("...").extract()[0]
    import urlparse
    image_absolute_url = urlparse.urljoin(response.url, image_relative_url.strip())
    item['image_urls'] = [image_absolute_url]
    ...

尚未使用ITEM_PIPELINES,但是文档说:

在Spider中,您刮取一个项目并将其图像的URL放入image_urls字段。

因此,item [‘image_urls’]应该是图像URL的列表。但是您的代码具有:

item['image_urls'] = 'http://www.domain.com' + item['image_urls']

因此,我想它逐个字符地循环访问您的单个URL字符-使用每个URL作为URL。



 类似资料:
  • 您好,我有一个按钮,当我单击它时,此函数称为: 这里是CreateQrLink函数 这是我想通过点击下载QrCode按钮从这个视图下载图像的视图,我如何实现它?我不在数据库中保存QrLink我应该保存它还是其他什么?我想从src=Model获取照片。QrUrl

  • 问题内容: 我知道保护图像下载的最佳方法不是一开始就将其放在互联网上。 我假设没有100%防止图片下载,并且如果用户可以在Internet上看到图片,那么他只要有一点经验就可以找到下载图片的权限。 我知道透明或覆盖图像,或者使用CSS属性来保护它并防止右键单击下载,但是在那里 其他使图片下载复杂化并因此阻止大多数用户下载图片的方式? 这是简单的代码开头: 问题答案: 根本没有办法阻止用户执行特定任

  • Scrapy提供了一个 item pipeline ,来下载属于某个特定项目的图片,比如,当你抓取产品时,也想把它们的图片下载到本地。 这条管道,被称作图片管道,在 ImagesPipeline 类中实现,提供了一个方便并具有额外特性的方法,来下载并本地存储图片: 将所有下载的图片转换成通用的格式(JPG)和模式(RGB) 避免重新下载最近已经下载过的图片 缩略图生成 检测图像的宽/高,确保它们满

  • 我试图从TripAdvisor网站上获取评论。由于网站中的大多数图像都是动态加载的,所以我使用splashjavascript呈现服务来生成页面。 问题是有些图像已加载,有些未加载。 以下是我要爬网的评论的URL:https://www.tripadvisor.com.sg/ShowUserReviews-g294265-d1770798-r446535418-Marina_Bay_Sands-S

  • 本文向大家介绍python抓取网站的图片并下载到本地的方法,包括了python抓取网站的图片并下载到本地的方法的使用技巧和注意事项,需要的朋友参考一下 实例如下所示: 以上这篇python抓取网站的图片并下载到本地的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 现在我有一个,我想将其另存为PNG。我可以使用所有那些花哨的复杂文件系统API来做到这一点,但我真的不喜欢它们。 我知道上面是否有带有属性的链接: 如果用户单击该文件,它将下载文件。因此我想到了这个: 但是,它似乎不起作用。它是否必须由用户操作触发?否则为什么它不起作用? 问题答案: 问题在于jQuery不会触发元素的本机事件,因此不会发生导航(的正常行为),因此您需要手动执行操作。对

  • 图片下载和存取的简单demo。实现同步和异步两种下载方式。并且将下载好的图片保存在Document,然后进行读取显示。 [Code4App.com]

  • 从互联网下载图片,并显示。下载图片过程中显示进度条。支持图片缩放,运用了ASI、SDWebImage。支持图片缓存。 [Code4App.com]