2015-07-13 73 views
0

最近我试图从C#中使用网页中的一些数据。 我的问题是,在C#,当我使用WebBrowser对象与网页操作,当我浏览到的身体我的网页我只得到:刮数据,加载脚本

<body> 
    <script language="javascript" src="com.astron.kapar.WebClient/com.astron.kapar.WebClient.nocache.js"></script> 
</body> 

但是如果你去实际的网页上https://kapalk1.mavir.hu/kapar/lt-publication.jsp?locale=en_GB并查看您看到的源代码中是否有一些表格可能是因为浏览器加载了脚本。

我的问题是,C#中操纵或处理这种网页的方式是什么?例如选择一些日期并获取一些数据?有没有好的图书馆?

对不起,对英文不好。

+1

我认为,一个可能的解释是,网站筛选用户代理,并返回给您不同的内容,无论您是否使用浏览器。我手头没有'WebBrowser' API,但是您是否可以试着欺骗User-Agent头来查看它返回的内容? –

+0

更新:不,就是这样。我用Firefox打开,用CTRL + U查看源代码,发现它们在内部很相似。 Javascript在加载时生成HTML,并且也被缩小(这意味着部分混淆)。您可能需要对其API进行逆向工程并提出有意义的请求 –

回答

0

如果您熟悉javascript,拆解JavaScript驱动的网站一个很好的解决方案将是casperjs

我发现casperjs真的很容易与废弃javascript的网站。

  1. casperjs scriptcss selectors报废网站,并使用JSON.Stringify发送作为JSON所需输出到stdout
  2. 使用ProcessStartInfoC#调用casperjs。从stdout读取并将json序列化回POCO