Лучший способ использовать Python BeautifulSoup 4 для пошагового развертывания составных структур HTML-тегов? - PullRequest
0 голосов
/ 06 декабря 2018

Используя

from bs4 import BeautifulSoup
...
resp = requests.get(url, verify=False)
soup = BeautifulSoup(resp.text, 'lxml')
resultset = soup.find_all("div", class_="post-caption")

Я получаю этот HTML-фрагмент как набор результатов

<div class="morestuff clear" id="loadmoreimg">
    <a href="/username?next_id=1906796192441155318_2936189080">
       Load more posts
    </a>
</div>

Наконец, я хотел бы извлечь аргумент href auf den link-Tag, таким образом

'/username?next_id=1906796192441155318_2936189080'

Мне кажется, что невозможно создать (второй) суп из такого фрагмента HTML, верно?

В любом случае мне нужно развернуть внешний тег DIV, который я нашел по ID, чтобы получитьвнутренняя ссылка с аргументом href.

Я хотел бы сделать это с помощью BeautifulSoup-методов, без использования REGEX или других не суповых методов.Может быть, мне нужно перемотать эту строку в stup -Container и затем получить еще один BeautifulSoup.

Это хорошая идея или есть более эффективные способы сделать это?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Спасибо, это заставляет меня понять, что происходит:

resultset2 = soup.find_all("div", id="loadmoreimg") 
uprintln(type(resultset2))
uprintln(resultset2**[0]**.a['href'])

приводит к

<class 'bs4.element.ResultSet'>
/username?next_id=1906796192441155318_2936189080


element_tag = soup.find("div", id="loadmoreimg") 
uprintln(type(element_tag ))
uprintln(element_tag.a['href'])

выводам

<class 'bs4.element.Tag'>
/username?next_id=1906796192441155318_2936189080

Таким образом, в первом варианте у меня естьиндексировать набор результатов, чтобы получить тип.

0 голосов
/ 06 декабря 2018

Вы можете попробовать

resultset = soup.find("div", id="loadmoreimg")
print(resultset.a['href'])

, чтобы получить

'/username?next_id=1906796192441155318_2936189080'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...