为了账号安全,请及时绑定邮箱和手机立即绑定

无法获取超链接href美丽汤

无法获取超链接href美丽汤

慕尼黑8549860 2023-09-11 16:59:49
我试图获取锚点 (a) 元素的超链接,但我不断得到:h ttps://in.finance.yahoo.com/h ttps://in.finance.yahoo.com/我已尝试过此处提供的所有解决方案:链接这是我的代码:href_links = []symbols = []prices = []commodities = []CommoditiesUrl = "https://in.finance.yahoo.com/commodities"r = requests.get(CommoditiesUrl)data = r.textsoup = BeautifulSoup(data)counter = 40for i in range(40, 404, 14):    for row in soup.find_all('tbody'):        for srow in row.find_all('tr'):            for symbol in srow.find_all('td', attrs={'class':'data-col0'}):                symbols.append(symbol.text)                href_link =  soup.find('a').get('href')                href_links.append('https://in.finance.yahoo.com/' + href_link)            for commodity in srow.find_all('td', attrs={'class':'data-col1'}):                 commodities.append(commodity.text)            for price in srow.find_all('td', attrs={'class':'data-col2'}):                prices.append(price.text)pd.DataFrame({"Links": href_links, "Symbol": symbols, "Commodity": commodities, "Prices": prices })另外,我想知道是否可行,与网站类似,将商品符号作为我的 pandas 数据框中的超链接。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

我不确定您发布的代码发生了什么,但您可以通过find将a属性data-symbol设置为 的元素简单地获取该 URL GC=F。html 有 2 个这样的元素。您想要的是第一个,这是 . 返回的内容soup.find('a', {'data-symbol': 'GC=F'}).get('href')。


import requests, urllib


from bs4 import BeautifulSoup


CommoditiesUrl = "https://in.finance.yahoo.com/commodities"

r = requests.get(CommoditiesUrl)

data = r.text

soup = BeautifulSoup(data)


gold_href = soup.find('a', {'data-symbol': 'GC=F'}).get('href')


# If it is a relative URL, we need to transform it into an absolute URL (it always is, fwiw)

if not gold_href.startswith('http'):

    # If you insist, you can do 'https://in.finance.yahoo.com" + gold_href

    gold_href = urllib.parse.urljoin(CommoditiesUrl, gold_href)


print(gold_url)

另外,我想知道是否可行,与网站类似,将商品符号作为我的 pandas 数据框中的超链接。

我对熊猫不熟悉,但我想说答案是肯定的。


查看完整回答
反对 回复 2023-09-11
  • 1 回答
  • 0 关注
  • 47 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信