Python 刮码抛出TypeError:';非类型';对象是不可编辑的
我试图请求一个参数Python 刮码抛出TypeError:';非类型';对象是不可编辑的,python,python-3.x,scrapy,Python,Python 3.x,Scrapy,我试图请求一个参数site\u search\u url,但运行时出现以下错误:``: start_requests = iter(self.spider.start_requests()) TypeError: 'NoneType' object is not iterable 代码: 我做错了什么 谢谢您的start\u请求不返回任何内容,这意味着在Python中返回None,而它应该返回请求对象的iterable。在您的情况下,最简单的方法是在中填充开始\u URL,并且不要覆盖开始\u
site\u search\u url
,但运行时出现以下错误:``:
start_requests = iter(self.spider.start_requests())
TypeError: 'NoneType' object is not iterable
代码:
我做错了什么
谢谢您的
start\u请求
不返回任何内容,这意味着在Python中返回None
,而它应该返回请求
对象的iterable。在您的情况下,最简单的方法是在中填充开始\u URL
,并且不要覆盖开始\u请求
:
class BrickSetSpider(scrapy.Spider):
se_base = 'http://www.se.com/search?q=site:'
def __init__(self, site_search_url):
self.start_urls = [self.se_base + site_search_url]
def parse(self, response):
yield scrapy.Request(
response.urljoin(next_page),
callback=self.parse
)
错误只是因为start\u请求
没有显式的return语句,因此返回None
。然后,您将尝试迭代返回值。要解决此问题,只需返回可从start\u请求中读取的内容即可。我对您的代码了解不够,无法建议它可能返回什么。
class BrickSetSpider(scrapy.Spider):
se_base = 'http://www.se.com/search?q=site:'
def __init__(self, site_search_url):
self.start_urls = [self.se_base + site_search_url]
def parse(self, response):
yield scrapy.Request(
response.urljoin(next_page),
callback=self.parse
)