我的蜘蛛代码一直运行得很好,但是现在当我试图运行一批这些蜘蛛时,除了一些蜘蛛,碎片下载图像,其余的一切都没有。除了开始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
当屏幕抓取时,一个常见的问题是,服务器会切断连接,因为你试图访问它太频繁(以防止屏幕抓取者无意中关闭他们的网站,并防止成本上升,因为有人每毫秒ping他们的网站,等等)。在
尝试添加
方法之间的每个请求到沃尔玛页面。这样你就不会被阻止访问服务器。在
相关问题 更多 >
编程相关推荐