很抱歉提出这个笨拙的问题。
我正在学习使用BeautifulSoup,并且试图在表中提取特定的数据字符串。
该网站是https://airtmrates.com/,我想要获取的确切字符串是:
VES Bolivar Soberano银行价值价值价值
该表没有任何类,因此我不知道如何查找和解析该字符串。
我一直在提拔一些东西,但是我失败了。这是我尝试的最后一个代码,因此您可以大笑:
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
答案 0 :(得分:0)
页面是动态的,这意味着您需要在解析之前呈现页面。您可以使用Selenium或Requests-HTML
我对Requests-HTML不太熟悉,但是我过去曾经使用过Selenium。这应该可以帮助您。另外,每当我要提取public function actionGet_event() {
$events = Shedule::find()->all();
$eventsJson = array();
foreach ($events as $event) {
$url = "https://www.google.co.in/";
$eventsJson[] = array(
'description' => $event->event_desc,
'title' => $event->event_title,
'start' => $event->event_date,
'edit' => $url,
'className' => ["event", "bg-color-greenLight"],
'icon' => 'fa-check',
);
}
echo json_encode($eventsJson);
}
时,我都喜欢用熊猫来解析标签。但是BeautifulSoup仍然可以使用,只需花费更多的工作来遍历<table>
,table
,tr
标签。熊猫可以通过td
为您完成这项工作:
.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/')