next_page = response.css('body > div.bg-theme-b.page-results.page-listing-results.page-results-responsive.ui-page.ui-page-theme-a.ui-page-header-fixed.ui-page-active > div.ui-panel-wrapper > div > div:nth-child(10) > div > ul > li.ui-block-b > a').extract_first()
if next_page is not None:
next_page = response.urljoin(next_page)
yield scrapy.Request(next_page, callback=self.parse)
我正试图从m.zoopla.co.uk(移动,因为它似乎更好地从...抓取数据)的房价数据。我无法获得scrapy来获取下一页链接上的href属性。数据从第一页上删除很好 - 没有问题。
我使用了这里显示的最长,最直接的CSS选择器 - 它不起作用。我尝试使用较短的选择器:response.css('li.ui-block-b > a::attr(href)').extract_first()
,它仍然返回为无。
我也尝试过使用XPath。那里也没有雪茄。请帮忙。有人。任何人..
PS。只包含下一页的代码,因为没有错误,实际的数据抓取工作正常。
答案 0 :(得分:0)
您只需选择具有<a>
属性的data-icon="carat-r"
元素,然后获取href
,因为只有下一页链接具有属性data-icon="carat-r"
。
next_page = response.css('a[data-icon*=carat-r]::attr(href)').extract_first()
<强>输出:强>
2017-05-03 13:27:53 [quotes] DEBUG: next_page is /house-prices/browse/coalville/?pn=2