gpt4 book ai didi

python - 如何使用 BeautifulSoup 从特定字符串解析表?

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:38 26 4
gpt4 key购买 nike

很抱歉问了这个新手问题。

我正在学习使用 BeautifulSoup,并且正在尝试提取表中的特定数据字符串。

网站是https://airtmrates.com/我想要获取的确切字符串是:

VES Bolivar Soberano Bank Value Value Value

该表没有任何类,因此我不知道如何查找和解析该字符串。

我一直在从我的屁股里掏出一些东西,但我惨遭失败。这是我尝试的最后一个代码,这样你就可以笑了:

def airtm():
#URLs y ejecución de BS
url = requests.get("https://airtmrates.com/")
response = requests.get(url)
html = response.content
soup_ = soup(url, 'html.parser')
columns = soup_.findAll('td', text = re.compile('VES'), attrs = {'::before'})
return columns

最佳答案

页面是动态的,这意味着您需要在解析之前渲染页面。您可以使用 Selenium 来做到这一点或Requests-HTML

我对Requests-HTML不太熟悉,但我过去使用过Selenium。这应该能让你继续前进。另外,每当我拉 <table> ,标签我喜欢用pandas来解析。但是BeautifulSoup仍然可以使用,只是需要多一点工作来迭代table , tr , td标签。 Pandas 可以通过 .read_html() 为您完成这项工作:

from selenium import webdriver
import pandas as pd


def airtm(url):
#URLs y ejecución de BS
driver = webdriver.Chrome("C:/chromedriver_win32/chromedriver.exe")
driver.get(url)

tables = pd.read_html(driver.page_source)
df = tables[0]
df = df[df['Code'] == 'VES']

driver.close()
return df

results = airtm('https://airtmrates.com/')

输出:

print (results)
Code Name Method Rate Buy Sell
120 VES Bolivar Soberano Bank 2526.7 2687.98 2383.68
143 VES Bolivar Soberano Mercado Pago 2526.7 2631.98 2429.52
264 VES Bolivar Soberano MoneyGram 2526.7 2776.59 2339.54
455 VES Bolivar Soberano Western Union 2526.7 2746.41 2383.68

关于python - 如何使用 BeautifulSoup 从特定字符串解析表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54190178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com