Рекурсивно извлечь ссылки HREF - PullRequest
0 голосов
/ 09 апреля 2019

Я извлек href links. Но я хочу написать код, по которому ссылки будут переходить на внутренние ссылки или подлинки. '' 'питон

 from urllib.request import urlopen
 from bs4 import BeautifulSoup
 url = 'https://www.3gpp.org/'
 url_open = urlopen(url)
 soup = BeautifulSoup(url_open,'lxml')
 anchor = soup.findAll('a')
 for link in anchor:
     a = (link.get('href'))
     print(a)

Ссылки href должны извлекать внутренние ссылки

1 Ответ

1 голос
/ 09 апреля 2019

Вы хотите сказать, что хотите перейти на связанные страницы?

Самый простой способ сделать это - создать список / очередь URL-адресов, заполненных корневым каталогом, зацикливаться до тех пор, пока он не станет пустым (удалить один из URL-адресов и получить страницу), и каждый раз, когда вы видите ссылку, добавляйте ее в очередь на обработку.

Возможно, вы захотите хранить посещенные URL-адреса в наборе (чтобы не заходить на одну и ту же страницу снова и снова), а также в белый список / фильтровать домены, чтобы не просматривать весь интернет. Скорее всего, вам понадобится urllib.parse, если просматриваемый вами сайт использует относительные ссылки.

Более расходящаяся альтернатива - использовать скрапинг (в основном веб-скребковый фреймворк) вместо того, чтобы самому кататься.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...