for restaurant in response.xpath('//div[@class="listing"]'):
restaurantItem = RestaurantItem()
restaurantItem['name'] = response.css(".title::text").extract()
yield restaurantItem
next_page = response.css(".next > a::attr('href')")
if next_page:
url = response.urlJoin(next_page[0].extract())
yield scrapy.Request(url, self.parse)
我修正了它给我的所有错误。现在,我没有错误。爬行start_url后蜘蛛刚刚关闭。 for循环永远不会被执行。
答案 0 :(得分:0)
当您尝试以这种方式查找元素时:
response.xpath('//div[@class="listing"]')
你在说我想要找到一个字面上只有"列出"作为它的班级:
<div class="listing"></div>
但是,这并不存在于DOM的任何地方,发生了以下情况:
<div class="listing someOtherClass"></div>
要选择上面的元素,您必须告诉该元素包含某个属性文本,但可以包含更多元素。在这里,像这样:
response.xpath('//div[contains(@class,"listing")]')