[英]Can't go to next page with Scrapy
我想在刮下一个eventbrite页面后继续下一页,但是即使使用了Scrapy的Crawlspider也无法正常工作。
这是遍历页面的代码
allowed_domains = ["eventbrite.com"]
start_urls = ["https://www.eventbrite.com/d/nigeria--lagos/events/?crt=regular&end_date=01%2F31%2F2018&page=1&sort=best&start_date=12%2F01%2F2017",
]
def parse(self, response):
events = Selector(response).xpath('//div[@class="list-card-v2 l-mar-top-2 js-d-poster"]')
for event in events:
name = event.xpath('a/div[@class="list-card__body"]/div[@class="list-card__title"]/text()').extract()
venue = event.xpath('a/div[@class="list-card__body"]/div[@class="list-card__venue"]/text()').extract()
date = event.xpath('a/div[@class="list-card__body"]/time[@class="list-card__date"]/text()').extract()
event_type = event.xpath('a/div[@class="list-card__header"]/span/text()').extract()
category = event.xpath('div/div[@class="list-card__tags"]/a/text()').extract()
image= event.xpath('a/div[@class="list-card__header"]/div/img[@class="js-poster-image"]').extract()
image_url= event.xpath('a/div[@class="list-card__header"]/div/img[@class="js-poster-image"]/@src').extract()
name = ''.join(name).replace('\n', '').strip()
date = ''.join(date).replace('\n', '').strip()
venue = ''.join(venue).replace('\n', '').strip()
yield EventsItem(name=name, venue=venue, date=date,
event_type=event_type, category=category,
image_urls=image_url, images=image)
next_page = response.xpath('//a[@data-automation="next-page"]/@href').extract_first()
if next_page is not None:
next_page = response.urljoin(next_page)
yield scrapy.Request(next_page, callback=self.parse)
这是元素的图像。 我不知道是否是因为href属性为空或错误的xpath。
欢迎任何帮助,谢谢。
代替最后一行是:
yield scrapy.Request(next_page, callback=self.parse)
试试这个:
yield scrapy.Request(next_page, callback=self.parse, dont_filter=True)
注意:请注意允许的URL。 在某些情况下,它们不应包含http
或https
。 在这种情况下,请使用google.com
而不是https://www.google.com
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.