[英]Link extraction from website
我試圖從WebMD中提取一些數據,一旦我運行我的代碼,我就會繼續將“無”作為回報。 知道我做錯了什么。 我的返回數量與鏈接數量相同,但我沒有得到鏈接。
import bs4 as bs
import urllib.request
import pandas as pd
source = urllib.request.urlopen('https://messageboards.webmd.com/').read()
soup = bs.BeautifulSoup(source,'lxml')
for url in soup.find_all('div',class_="link"):
print (url.get('href'))
你的url
元素實際上是一個div
標簽,而不是a
:
>>> x = soup.find_all('div', class_="link")
>>> x[0]
<div class="link"><a href="https://messageboards.webmd.com/family-pregnancy/f/relationships/">Relationships</a></div>
您需要在獲取href屬性之前選擇子項:
>>> x[0].a.get('href')
'https://messageboards.webmd.com/family-pregnancy/f/relationships/'
只需按如下方式修改for循環:
for url in soup.find_all('div',class_="link"):
print (url.a.get('href'))
soup.find_all('div',class_="link")
返回帶有類link
所有div
元素。 這些元素包含了包含href屬性a
元素,因此您需要從正確的元素中獲取href,如下所示:
for div in soup.find_all('div',class_="link"):
print (div.a.get('href'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.