Использование BeautifulSoup и Python, чтобы найти длину максимальной последовательности ссылок в HTML? - PullRequest
0 голосов
/ 12 сентября 2018

Моя задача - найти тело статьи <div id="bodyContent"> и в ней вычислить длину максимальной последовательности ссылок, между которыми нет других открытых или закрытых тегов. Например:

<p>
    <span><a></a></span>
    **<a></a>
    <a></a>**
</p>

- в строке 2 ссылки, потому что закрывающий интервал прерывает последовательность.

 <p>
    **<a><span></span></a>
    <a></a>
    <a></a>**
</p

- и есть 3 ссылки подсерии, потому что span находится внутри ссылки, а не между ссылками. Для ее решения я использую Beautifulsoup и Python.

Код:

import requests
from bs4 import BeautifulSoup

html = requests.get('https://en.wikipedia.org/wiki/Stone_Age')
soup = BeautifulSoup(html.text, "lxml")
body = soup.find(id="bodyContent")

# get first link
first_link = body.a

# find all links that are in the same level
first_link.find_next_siblings('a')

Как перейти по следующим ссылкам?

С наилучшими пожеланиями!

1 Ответ

0 голосов
/ 15 сентября 2018

Мое решение:

import requests
from bs4 import BeautifulSoup

html = requests.get('https://en.wikipedia.org/wiki/Stone_Age')
soup = BeautifulSoup(html.text, "lxml")
body = soup.find(id="bodyContent")

tag = body.find_next("a")
linkslen = -1
while (tag):
    curlen = 1
    for tag in tag.find_next_siblings():
        if tag.name != 'a':
            break
        curlen += 1
    if curlen > linkslen:
         linkslen = curlen
     tag = tag.find_next("a")
 print(linkslen)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...