c# - 抓取 JavaScript 动态生成的数据

标签 c# web-scraping

我尝试使用 PhantomJSDriver 来抓取此 URL:http://www.tsetmc.com/loader.aspx?ParTree=151311&i=67126881188552864

1) 首先,在此 URL 中,我们必须单击上方的蓝色链接,名为:Samboقه

2) 然后我想废弃这个 XPath: //*[@id="trade"]/div[2]/table/tbody/tr[9]/td[7]

这是我的代码,但此代码找不到所需的 XPath:

var driverService = PhantomJSDriverService.CreateDefaultService();
var driver = new PhantomJSDriver(driverService);

driver.Url = "http://www.tsetmc.com/loader.aspxParTree=151311&i=67126881188552864";
driver.Navigate();
var source = driver.PageSource;
driver.FindElementByXPath("//*[@id=\"tabs\"]/div/ul/li[3]/a").Click();

Thread.Sleep(5000);

try
{
    var pathElement = driver.FindElementByXPath("//[@id=\"trade\"]/div[2]/table/tbody/tr[9]/td[7]");
    MessageBox.Show(pathElement.Text);
}
catch
{
    driver.Dispose();
    this.Close();
}
driver.Dispose();

最佳答案

我建议直接点击此网址:

http://members.tsetmc.com/tsev2/data/InstTradeHistory.aspx?i=67126881188552864&Top=999999&A=0

然后解析这些值,因为这基本上包含所有 209 页上的所有值,因此它也可以省去您从第 1 页 -209 页移动的麻烦。

看起来很容易被 ; 分割给出所有行,然后用 @ 分割给出每列的值。

关于c# - 抓取 JavaScript 动态生成的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52098584/

相关文章:

c# - 如何使用 Prism 和 Unity 显示一个 View 的多个实例

c# - .Net 中的优先级队列

r - 怎么刮这个

python - 在 python Selenium 中循环遍历页面并获取 StaleElementReferenceException

c# - 将具有 Visibility.Visible 的样式应用于隐藏控件不起作用。

c# - 使用c#更新MySql上auto_increment ID列的值

python - Selenium 未加载 TikTok 页面

python - 使用 Python 2.7 和 selenium 抓取数据并对其进行排序

c# - .Net MAUI 查询参数未传递

php - 如何在目标站点上抓取通过 websockets 流式传输的 JSON 数据