【问题标题】:Scraping data dynamically generated by JavaScript抓取 JavaScript 动态生成的数据
【发布时间】:2018-08-30 13:42:42
【问题描述】:

我尝试使用 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();

【问题讨论】:

    标签: c# web-scraping


    【解决方案1】:

    我建议直接点击这个网址:

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

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

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

    【讨论】:

    • 但是你怎么能找到这个网址呢?
    • @ScorpianZ 打开 firefox(打开控制台)或 fiddler 在运行时点击 URL,您将看到上述 URL 正在加载(ajax 调用)。
    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 2012-09-19
    • 1970-01-01
    • 2012-04-20
    • 2014-07-30
    相关资源
    最近更新 更多