之前,我在Python中进行过少量的Web抓取工作,但是我一直陷在一个相当简单的问题上。
我想从本页的表格中查询价格。
我可以获得诸如单个元素或所有比率之类的东西(因为它们都列在“ fccu__slash”类下,但是我不知道如何以可用格式逐行获取结果。
这是我的代码的相关部分:
FCCU_url = "https://www.fccu.org/Rates/CD-Rates"
FCCU_resp = requests.get(FCCU_url, timeout=3)
FCCU_soup = BeautifulSoup(FCCU_resp.content, "html.parser")
for elem in FCCU_soup.find_all("td"):
try:
print(elem.contents[0])
except IndexError:
print(elem.contents)
这将输出我想要的所有信息,但不是可用的格式。
理想情况下,我只希望以我感兴趣的术语刮擦CD,并以这种格式输出结果(我只关心利率而不是APY):
['3 Month', '0.65%', '0.75%']
['6 Month', '1.44%', '1.59%']
['2 Year', '2.37%', '2.62%']
这些不是我关心的特定问题,但是一旦我了解了如何做,便想自行进行调整。
感谢您的任何提前帮助。
尝试下面的代码以获取所需的输出:
FCCU_url = "https://www.fccu.org/Rates/CD-Rates"
FCCU_resp = requests.get(FCCU_url, timeout=3)
FCCU_soup = BeautifulSoup(FCCU_resp.content, "html.parser")
for elem in FCCU_soup.select("tbody tr"):
cells = [td for td in elem.findChildren('td')]
data = [cells[0].text, cells[2].span.text, cells[3].span.text]
print(data)
输出:
['3 Month', '0.65%', '0.75%']
['6 Month', '1.44%', '1.59%']
['1 Year', '2.13%', '2.37%']
['2 Year', '2.37%', '2.62%']
['3 Year', '2.27%', '2.52%']
['4 Year', '2.37%', '2.62%']
['5 Year', '2.96%', '3.20%']
['9 Month', '0.95%', '1.09%']
['19 Month', '1.98%', '2.08%']
['2 Year²', '2.27%', '2.52%']
['4 Year³', '2.32%', '2.57%']
['2 Year', '2.27%', 'N/A']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句