Как я могу получить ссылку от href в "а" с именем класса с помощью Python 3 - PullRequest
0 голосов
/ 06 сентября 2018

Я пытался получить ссылку с карты Google, которая является элементом:

<div class="something1">
  <span class="something2"></span>
  <a data-track-id="Google Map" href="https://www.google.com/maps/dir//11111/@22222" target="_blank" class="something3">Google Map</a>
</div>

который я только хотел бы получить https://www.google.com/maps/dir//11111/@22222

Мой код

 gpslocation = []
 for gps in (secondpage_parser.find("a", {"data-track-id":"Google Map"})):
     gpslocation.append(gps.attrs["href"])

Я использую 2 страницы URL-адреса (главную и вторую) для просмотра веб-сайта блога, который находится на второй странице. Другая информация, такая как «Название сюжета» или «Имя автора», работает так, как она отображается в виде текста, поэтому я могу использовать get_text().

Но в этом случае я не смог получить ссылку после href. Пожалуйста помоги.

Ps. В случае, если я хочу только широту и долготу в ссылке (11111 и 22222), есть ли способ использовать str.rplit?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018
  1. Используйте soup.find(...)['href'] для поиска всех ссылок с помощью ссылки или soup.find_all('a' ... , href=True) для всех ссылок

  2. Да, вы можете использовать сплит, чтобы получить только лат и лонг

    • Первый раздел на // и получение последней [-1]
    • Затем разделите на /@, чтобы получить широту и долготу

from bs4 import BeautifulSoup

data = """
<div class="something1">
  <span class="something2"></span>
  <a data-track-id="Google Map" href="https://www.google.com/maps/dir//11111/@22222" target="_blank" class="something3">Google Map</a>
</div>
"""

soup = BeautifulSoup(data, "html.parser")
for gps in soup.find_all('a', href=True):
    href = gps['href']
    print(href)
    lati, longi = href.split("//")[-1].split('/@')
    print(lati)
    print(longi)
0 голосов
/ 06 сентября 2018

Вы можете использовать следующее:

secondpage_parser.find("a", {"data-track-id":"Google Map"})['href']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...