刮取JavaScript动态生成的数据
我尝试使用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();
我建议直接点击这个url:
http://members.tsetmc.com/tsev2/data/InstTradeHistory.aspx?i=67126881188552864&Top=999999&A=0
然后解析这些值,因为它基本上包含了所有209页面上的所有值,因此它还可以避免从第1页到第209页移动的麻烦。
它看起来很容易分开; 为您提供所有行,然后按@分割,为您提供每列的值。
- 比较两个DataTable并选择第二个表中不存在的行
- 问题在C#中反序列化JSON日期 – 增加2小时
- Scaffolding EntityFramework 6无法将’System.Data.Entity.Core.Objects.ObjectContext’类型的对象强制转换为’System.Data.Objects.ObjectContext’
- 集合具有非常快速的迭代和良好的添加和移除速度
- 获取Identity中的当前用户电子邮件
- Json.NET在序列化上获得通用属性类型名称?
- ASP.NET DropDownList AutoPostback不工作 – 我缺少什么?
- 存储库上的Ninject WCF垃圾收集
- 如何断言调用了一个动作