无法使用漂亮的汤从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&" 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&" id="review_next_page_link">Next page</a></p>]
但是
print(link[0].get('href'))
结果:空白
预期:/reviews/in/hotel/best-western-star-residency.html?page=2&
答案 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']