Я написал сценарий в python
в сочетании с BeautifulSoup
чтобы перейти к next page
веб-сайта, используя кнопку pagination (есть ссылка, связанная с этой кнопкой), пока не будет новой страницы для сканирования. Мой скрипт может сканировать next pages
используя ссылку для разбивки на страницы. Однако проблема заключается в том, что разбитые на страницы ссылки никогда не заканчиваются, поскольку кнопка (подключенная к ссылке следующей страницы) не серая, поэтому я попадаю в бесконечный цикл. Как я могу избавиться от этого таким образом, чтобы скрипт проверял, я ли я соскабливаю две идентичные ссылки, и как только он найдет один, он сломается.
Это мой сценарий до сих пор:
import requests
from bs4 import BeautifulSoup
def get_content(link):
while True:
res = requests.get(link)
soup = BeautifulSoup(res.text, 'lxml')
#some code here to do the rest of the activity
nextpage = soup.select_one(".roundright a")
if not nextpage:break #The loop doesn't break because the next page button never grayes out
link = nextpage.get("href")
print(link)
if __name__ == '__main__':
url = "http://www.viprealestateug.com/action/rentals/"
get_content(url)
Полученные результаты:
http://www.viprealestateug.com/action/rentals/page/2/
http://www.viprealestateug.com/action/rentals/page/3/
http://www.viprealestateug.com/action/rentals/page/4/
http://www.viprealestateug.com/action/rentals/page/4/
http://www.viprealestateug.com/action/rentals/page/4/
and so on
Я мог бы избежать таких проблем, если бы хотел пойти на любой жесткий подход, но это не мое намерение.
просто сохраните последнюю ссылку
last_link = link
link = nextpage.get("href")
if link == last_link: break
print(link)