同一页面上的多个下一页链接



在python中,如果下一页链接在同一页面上出现两次,并且您只想在抓取页面后抓取其中一个,您将如何处理web抓取?

https://www.imdb.com/search/title/?groups=top_100&amp例子;= user_rating, desc& ref_ = adv_prv

下一页显示在列表的顶部和底部。

首先,找到包含所需元素的部分:

movies_list = driver.find_element('xpath', '//div[contains(@class, "lister-item mode-advanced")]')
next_page = movies_list.find_element('xpath', './/div[contains(@class, "lister-page-next next-page")]')

正如在这个回答中提到的,尽量选择更具体的元素。而不是使用.find_all().select()来得到ResultSet,你当然可以切片到一个元素或者根据索引选择一个元素,

movie_soup.select('.next-page')[0].get('href')

头使用.find().select_one(),将只返回您搜索的元素的第一次出现

movie_soup.select_one('.next-page').get('href')

根据您的初始代码,您可以使用:

...
# Step 5: Parse the results object to movie_soup using the html parser.
movie_soup = BeautifulSoup(results.text, "html.parser")
nextpage = requests.get('https://www.imdb.com'+movie_soup.select_one('.next-page').get('href'))

# create soup for next url
nextsoup = BeautifulSoup(nextpage.content, 'html.parser')
...

相关内容

  • 没有找到相关文章