有时下载图片时有问题

2024-04-25 10:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的蜘蛛代码一直运行得很好,但是现在当我试图运行一批这些蜘蛛时,除了一些蜘蛛,碎片下载图像,其余的一切都没有。除了开始URL之外,所有蜘蛛都是相同的。任何帮助都是感激的!

这是我的管道.py

from scrapy.contrib.pipeline.images import ImagesPipeline
from scrapy.exceptions import DropItem
from scrapy.http import Request

class DmozPipeline(object):
    def process_item(self, item, spider):
    return item

class MyImagesPipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
       for image_url in item['image_urls']:
        yield Request(image_url)

        for nlabel in item['nlabel']:
        yield Request(nlabel)

        print item['image_urls']


def item_completed(self, results, item, info):
    image_paths = [x['path'] for ok, x in results if ok]
    if not image_paths:
        raise DropItem("Item contains no images")
    item['image_paths'] = image_paths
    return item

<强>设置.py:

^{pr2}$

<强>items.py:

^{pr3}$

<强>myspider.py:

^{pr4}$

我真的很想知道为什么这只蜘蛛有时会获取图像,而在其他时候却不这样。所有蜘蛛都是相同的,除了来自相同允许的\u域的start\u url之外。图像都是绝对路径,路径正确。

谢谢。 -TM


Tags: infrompy图像imageimportselfurl
1条回答
网友
1楼 · 发布于 2024-04-25 10:10:31

当屏幕抓取时,一个常见的问题是,服务器会切断连接,因为你试图访问它太频繁(以防止屏幕抓取者无意中关闭他们的网站,并防止成本上升,因为有人每毫秒ping他们的网站,等等)。在

尝试添加

sleep()

方法之间的每个请求到沃尔玛页面。这样你就不会被阻止访问服务器。在

相关问题 更多 >