веб-очистка страниц ветки онлайн-форума с использованием python и beautifulsoup

Существует более простой способ:

ShapeDrawable drawable = new ShapeDrawable();
drawable.getPaint().setColor(getResources().getColor(R.color.blue));
getActionBar().setBackgroundDrawable(drawable);
0
задан vizzerdrix 18 March 2019 в 15:52
поделиться

2 ответа

Шаблон URL для разбивки на страницы всегда соответствует этому сайту, поэтому вам не нужно делать запросы, чтобы получить URL страницы. Вместо этого вы можете проанализировать текст в кнопке с надписью «Страница 1 из 10» и создать URL-адреса страницы, зная окончательный номер страницы.

import re

import requests
from bs4 import BeautifulSoup

thread_url = "http://forum.pcgames.de/stellt-euch-vor/9331721-update-im-out-bitches.html"
r = requests.get(thread_url)
soup = BeautifulSoup(r.content, 'lxml')
pattern = re.compile(r'Seite\s\d+\svon\s(\d+)', re.I)
pages = soup.find('a', text=pattern).text.strip()
pages = int(pattern.match(pages).group(1))
page_urls = [f"{thread_url[:-5]}-{p}.html" for p in range(1, pages + 1)]
for url in page_urls:
    print(url)
0
ответ дан nicholishen 18 March 2019 в 15:52
поделиться

Вы перебираете URL-адреса и добавляете их в себя, чтобы размер списка продолжал расти бесконечно.

Вы добавляете каждый URL из URL в URL - видите ли вы проблему? URL продолжает расти ... у него также есть каждый URL, который вы просматриваете внутри него. Вы хотите вызвать функцию, которая выполняет предыдущий код для каждого следующего URL, а затем добавляет его в список?

0
ответ дан Matthew Kligerman 18 March 2019 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: