从多个网络抓取中提取单个数据点
Extract single data point from multiple, webscraping
我正在尝试从以下筛选器中的 table 中提取股票代码(第 3 列):
https://chartink.com/screener/2-short-trend
并将它们传递给数据框。
由于自己知识有限,碰壁过不去了
我的代码是:
from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://chartink.com/screener/2-short-trend')
response.html.render()
for result in response.html.xpath('//*[@id="DataTables_Table_0"]/tbody/tr/td/a[1]'):
print(f'{result.text}\n')
输出:
Mahindra & Mahindra Limited
M&M
P&F
Apollo Tyres Limited
APOLLOTYRE
P&F
....
我只需要股票代码:M&M、APOLLOTYRE 等,并传入数据框。
谁能指导一下。
有点快速修复,但您可以使用计数器,假设相关输出是每个公司的第二个结果。类似下面的内容:
from requests_html import HTMLSession
import pandas as pd
session = HTMLSession()
response = session.get('https://chartink.com/screener/2-short-trend')
response.html.render()
i = 1
symbols = []
for result in response.html.xpath('//*[@id="DataTables_Table_0"]/tbody/tr/td/a[1]'):
print(f'{result.text}\n')
if i == 2:
symbols.append(result.text)
i -= 2
else:
i += 1
df = pd.DataFrame({"Symbol": symbols})
我构建了 i 以触发将结果附加到符号列表中迭代符号的位置,然后使用输出创建数据帧。使用该代码给了我一个数据框,其中包含 link.
中的 5 个符号
我正在尝试从以下筛选器中的 table 中提取股票代码(第 3 列):
https://chartink.com/screener/2-short-trend 并将它们传递给数据框。
由于自己知识有限,碰壁过不去了
我的代码是:
from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://chartink.com/screener/2-short-trend')
response.html.render()
for result in response.html.xpath('//*[@id="DataTables_Table_0"]/tbody/tr/td/a[1]'):
print(f'{result.text}\n')
输出:
Mahindra & Mahindra Limited
M&M
P&F
Apollo Tyres Limited
APOLLOTYRE
P&F
....
我只需要股票代码:M&M、APOLLOTYRE 等,并传入数据框。
谁能指导一下。
有点快速修复,但您可以使用计数器,假设相关输出是每个公司的第二个结果。类似下面的内容:
from requests_html import HTMLSession
import pandas as pd
session = HTMLSession()
response = session.get('https://chartink.com/screener/2-short-trend')
response.html.render()
i = 1
symbols = []
for result in response.html.xpath('//*[@id="DataTables_Table_0"]/tbody/tr/td/a[1]'):
print(f'{result.text}\n')
if i == 2:
symbols.append(result.text)
i -= 2
else:
i += 1
df = pd.DataFrame({"Symbol": symbols})
我构建了 i 以触发将结果附加到符号列表中迭代符号的位置,然后使用输出创建数据帧。使用该代码给了我一个数据框,其中包含 link.
中的 5 个符号