Есть простой код, которым проверяю на валидность страницы:
def check_url():
for page in range(0, 239999):
soup = BeautifulSoup(get_html(url + str(page)), 'html.parser')
if soup.find('h3', class_='description_404_A hide'):
print('Page not exists: {}'.format(url + str(page)))
else:
print('Page found: {}'.format(url + str(page)))
with open('pages.txt', 'a') as file:
file.write(url + str(page) + '\n')
Естественно проверять на существование 239999 страниц чуть-чуть долго.
Как вариант я могу просто запустить несколько потоков с multiprocessing, каждый из которых будет проверять свой диапазон страниц, но я не думаю, что это python-way.