关于如何获取页面中的AJAX及JSON内容
1个回答
展开全部
获取页面中的AJAX及JSON内容可以为我们解析以及制作爬虫程序提供便利,方法很多,下面说说今天学到的方法。 情景:制作一个爬虫,去某网站爬资料 描述:这个网站我们需要的部分使用AJAX动态呈现的,不能静态解析HTML,但是AJAX中关键信息的html控件ID已给出。 例如 <span id="spid">这里是通过Json传过来的ajax内容</span> 这里的spid即是;方法1: c# WebBrowser控件 Winform中有个控件叫做WebBrowser,是一个浏览器的简单封装;假设我们已经在设计时创建了一个WebBrowser控件,对象名叫browser,那么可以用如下方法获取ajax内容 string ajaxText = browser.Document.All["spid"].InnerText; // 属性设置或者获取id为"spid"的内容 当然要页面ajax完成后才行,可以通过browser.StatusText检查。其实我们不难想到JavaScript里的文档对象document.all,应该是一个意思,毕竟这个空间也是个浏览器。 好吧,这个有一些效率问题,就是说得被动等待ajax结束,有没有主动的呢?有! 方法2: Wireshark抓包 这个免费的抓包工具用法略,我们过滤一下Http协议的包,分析一下内容,可以找到你提交Ajax请求时的Request地址,这个很大程度可以帮咱们分析到页面是如何申请到ajax内容的,而且结构化相当高,很容易做一些字符串拼接或者正则匹配,效率很高,json下来自己解析一下就行,C#自带json解析。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询