无法使用漂亮的汤来获取HREF

时间:2019-04-14 08:21:24

标签: python beautifulsoup

无法使用漂亮的汤从href标签中获取链接。

我提供了以下html结构。 尝试了各种提取逻辑,但代码始终返回空白 请指教

<div class="review_list_pagination">
<p class="page_link review_next_page">
      <a href="/reviews/in/hotel/best-western-star-residency.html" 
           id="review_next_page_link">Next page </a>
 </p>
</div>

尝试

link = soup.find_all(attrs={"class": "page_link review_next_page"})

link = soup.find_all('p', attrs = {'class': 'page_link review_next_page'})

结果:

[<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 个答案:

答案 0 :(得分:2)

尝试以下操作:

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

您得到的是汤中的p标签。您无法从找到的p标记中获取内部a标记的属性。

上面的行将找到ID为= review_next_page_link的标签,您只需获取其href值即可。

答案 1 :(得分:0)

为了子孙后代(: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'

答案 2 :(得分:0)

有很多不同的方法可以解决这个问题,我在下面介绍。希望有帮助。

link = soup.find("p",{"class":"page_link review_next_page"}).a['href']