Python TypeError:请求url必须是str或unicode,获取列表:
我试图提取并保存图像,但每次运行spider时都会出现此错误,我在items.py中定义了以下函数Python TypeError:请求url必须是str或unicode,获取列表:,python,web,scrapy,Python,Web,Scrapy,我试图提取并保存图像,但每次运行spider时都会出现此错误,我在items.py中定义了以下函数 import scrapy from ..items import HamrobazarItem class CarsSpider(scrapy.Spider): name = 'cars' start_urls = ['https://hamrobazaar.com/c48-automobiles-cars'] def parse(self, response
import scrapy
from ..items import HamrobazarItem
class CarsSpider(scrapy.Spider):
name = 'cars'
start_urls = ['https://hamrobazaar.com/c48-automobiles-cars']
def parse(self, response):
items= HamrobazarItem()
img_urls=list()
img_urls.append(response.css('center img::attr(src)').extract())
items['image_urls']=img_urls
yield items
我无法运行您的爬行器,但问题似乎是生成列表列表
response.css('center img::attr(src)')。extract()
是一个列表和img\u URL。append(response.css('center img::attr(src)')。extract()
是一个列表列表,因此将其更改为img\u URL=response.css('center img::attr(src)')。extract()
可能会解决您的问题。代码片段似乎格式错误。我从来没有用过scrapy,你确定在中生产商品吗?它会生成列表,而不是列表中的项目,也许这是一个错误?我也使用了return。但是我在这里看不到它的作用,parse()
不应该返回URL列表(要解析),而是要产生Request
对象:产生scrapy.Request(下一页,callback=self.parse)
最初在settings.py文件中有ROBOTSTXT_-OBEY=True,我将其修改为ROBOTSTXT_-OBEY=False,这对meAre有效您是否能够获得图像但无法存储它?
import scrapy
class HamrobazarItem(scrapy.Item):
images=scrapy.Field()
image_urls=scrapy.Field()
pass