Невозможно получить HREF, используя красивый суп - PullRequest
2 голосов
/ 14 апреля 2019

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

Я предоставил структуру HTML ниже.Перепробовал различную логику извлечения, но код все время возвращается пустым.:

[<p class="page_link review_next_page"><a href="/reviews/in/hotel/best-western-star-residency.html?page=2&amp;" id="review_next_page_link">Next page</a></p>, 
<p class="page_link review_next_page"> <a href="/reviews/in/hotel/best western-star-residency.html?page=2&amp;" id="review_next_page_link">Next page</a></p>]

Но print(link[0].get('href'))

Результат: пусто

Ожидается: /reviews/in/hotel/best-western-star-residency.html?page=2&amp;

Ответы [ 3 ]

2 голосов
/ 14 апреля 2019

Попробуйте следующее:

link = find('a', {"id": "review_next_page_link"})["href"]

То, что вы получаете, это тег p от супа. Вы не можете получить свойство внутреннего тега из найденного тега p.

В строке выше найден тег с id = review_next_page_link, и вы можете просто получить его значение href.

0 голосов
/ 15 апреля 2019

Есть много разных способов справиться с этим, я приземлился ниже.Надеюсь, это поможет.

link = soup.find("p",{"class":"page_link review_next_page"}).a['href']
0 голосов
/ 14 апреля 2019

Ради будущих поколений (: D) вы также можете использовать любой из них:

soup3.select('a[id="review_next_page_link"]')[0]['href']

  #or

soup3.select_one('a[id="review_next_page_link"]')['href']

  #or

soup3.select('#review_next_page_link')[0]['href']

... и я уверен, что есть и другие способы сделать это.Все они выводят:

'/reviews/in/hotel/best-western-star-residency.html'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...