抓取JavaScript动态生成的数据

时间:2018-08-30 13:42:43

标签: c# web-scraping

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

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

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();

1 个答案:

答案 0 :(得分:2)

我建议直接点击此网址:

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

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

看起来很容易被;为您提供所有行,然后除以@为您提供每列的值。