我想抓取一个包含带有过滤选项的comobobox的网页。基本URL相同,但请求有效负载取决于所选组合框值。我有一个可用选项的列表,并且创建了一个循环,该循环遍历组合框的值并执行请求。代码如下:
def parse_product_lines(self, response):
options = json.loads(response.body_as_unicode())
product_lines = options['products']
for product_line in product_lines:
payload = self.prepare_payload(product_line)
scrapy.Request('http://example.com',
method="POST",
body=urllib.urlencode(payload),
callback=self.parse_items)
def parse_items(self, response):
print response
,但请求未执行。有人知道那里发生了什么吗?
首先,默认Spider
使用类使用方法parse
。
每个回调都应返回Item
或dict
或迭代器。
您应该yield request
在您的parse_product_lines
方法中告诉scrapy接下来要处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句