网站(https://www.bernama.com/en/crime_courts/)对所有分页链接使用相同的类名a=“page-link”。我的目标是获得右侧的下一个按钮,但无法区分上一个按钮、数字按钮和下一个按钮。我当前的代码试图从数组中获得最后一个元素,但失败了。
start_urls = {
'https://www.bernama.com/en/crime_courts/'
}
def parse(self, response):
for news in response.css('div.col-7.col-md-12.col-lg-12.mb-3'):
yield{
'title' : news.css('a.text-dark.text-decoration-none::text').get(),
'link' : news.css('a.text-dark.text-decoration-none::attr(href)').get()
}
next_page = response.css('a.page-link::attr(href)').getall()
if next_page[-1] != "#":
yield response.follow(next_page, callback = self.parse)
1条答案
按热度按时间pkmbmrz71#
您只是忘记了
[-1]
完整的工作代码,但我使用较短的css选择器
接下来的页面使用相对URL,所以它需要
response.urljoin()
来创建绝对URL。顺便说一句:
两个版本的CSS选择器也得到链接到YouTube上的视频,但他们是相同的每一页和CVS有相同的链接很多次。
如果你只需要新闻没有视频,那么它可能需要获得部分,其中有
row
与文本More news
和稍后搜索只在这一部分。