我正在尝试从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'))
答案 0 :(得分:0)
您的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'))
答案 1 :(得分:0)
soup.find_all('div',class_="link")
会返回课程div
的所有link
元素。这些元素包装了包含href属性的a
元素,因此您需要从正确的元素中获取href,如下所示:
for div in soup.find_all('div',class_="link"):
print (div.a.get('href'))