The invention discloses a method for automatically accessing the website information of users at different time periods based on program dynamic analysis. First, dynamic plug - in is used to obtain the user's access to the web page, then collect the behavior and store it in a variable, use the proxy to access the web page by the domain name caching user, then use the tool Selenium to set the timing, automatically access the same web page several times, and compare the collected files to find the user. Behavioral differences. The invention has remarkable effect in automatically acquiring dynamic behavior of users in many times.
【技术实现步骤摘要】
一种基于程序动态分析的网站访问信息自动获取方法
本专利技术涉及一种模拟用户多次定时自动访问一个网站、记录其行为并进行分析的动态分析框架,属于互联网应用领域。
技术介绍
随着互联网的发展,JavaScript(简称JS)脚本语言在Web客户端中得到了广泛应用。大量开发框架的出现(如Node.js等)使得用JavaScript来编写服务器端程序变得可行,也有越来越多的JavaScript应用出现在服务器端,体现了JavaScript语言的强大性。目前针对JavaScript的研究和应用也变得越来越流行。Selenium是一个用于Web应用客户端程序测试的工具。Selenium测试直接运行在浏览器中,它基于JavaScript并结合其WebDriver来模拟用户的真实操作,并且支持多种浏览器(如Safari,IE,Firefox,Chrome等),可以运行在多种操作系统上面。Jalangi是一个对前端和后端JavaScript代码进行动态分析的框架,它可以通过添加钩子来监控JavaScript的每一个操作,如变量的读/写、一元/二元运算、函数/方法调用等。我们可以根据实际需要,使用Jalangi对JavaScript代码进行插桩,以提取相关的信息。
技术实现思路
技术问题:本专利技术的目的是模拟一个用户在不同时间段访问同一个网页并自动化记录该用户的动态行为,将其序列化存入本地文件之后,对比不同时间段上网页内容的差异。该技术克服了现有的爬虫技术只能批量获取网页本身已有的内容、不能对用户的某些特殊行为进行批量记录并分析的不足。为实现上述目的,本专利技术通过使用JavaS ...
【技术保护点】
1.一种基于程序动态分析的网站访问信息自动获取的方法,其特征在于,基于程序动态分析、自动获取用户在不同时间段访问网站的信息,即:首先使用插桩技术对整个网页的JavaScript源码进行插桩,获取用户在访问网页中的动态行为;然后对该动态行为进行收集并存储在一个变量中,同时使用代理按域名缓存用户访问的网页;然后使用Selenium获取到插桩过的网页中的JavaScript变量并设置定时多次自动化访问同一个网页;最后比较采集的文件,以发现用户的动态行为差异。
【技术特征摘要】
1.一种基于程序动态分析的网站访问信息自动获取的方法,其特征在于,基于程序动态分析、自动获取用户在不同时间段访问网站的信息,即:首先使用插桩技术对整个网页的JavaScript源码进行插桩,获取用户在访问网页中的动态行为;然后对该动态行为进行收集并存储在一个变量中,同时使用代理按域名缓存用户访问的网页;然后使用Selenium获取到插桩过的网页中的JavaScript变量并设置定时多次自动化访问同一个网页;最后比较采集的文件,以发现用户的动态行为差异。2.根据权利要求1所述基于程序动态分析的网站访问信息自动获取方法,其特征是包括以下步骤:1)使用JavaScript的动态插桩工具Jalangi,使用Selenium模仿用户访问网页,对用户访问网页中执行的JavaScript代码进行插桩,在所需信息的对象上添加一个JS变量,网页执行过程中,这个JS变量被添加和传递,以此来记录用户的动态行为。2)利用火狐浏览器设置代理服务器,这样用户执行的网页经过代理服务器,代理服务器调用Jalangi进行插桩;利用Selenium的executeScript方法获取此变量包含的信息。3)利用代理mitmproxy调用Python脚本缓存用户访问的网页,文件按请求Web内容的url域名分别进行存放,并且记录每个文件的md5码。4)模拟用户多次定时访问同一个网站,并记录其批量信息,即使用Selenium模拟用户访问一个网站,利用定时器让这个动作重复定时执行多次。5)对于通过mitmproxy获取的批量文件进行分析,因为用户访问的文件不同,生成的md5就不相同,可以通过对比md5码的异同来区分用户访问同一网站的动态行为差异。3.根据权利要求2所述的自动获取网站访问信息的方法,其特征是步骤1)中,对用户访问网页中执行的JavaScript代码进行插桩,即:使用JavaScript的动态插桩工具Jalangi,并使用工具Selenium模仿用户访问网页,在Selenium启动火狐浏览器之前就设置好代理服务器,包括设置代理服务器的IP地址、代理服务器的端口地址等等;然后启动浏览器,使用浏览器的get方法传入用户要访问的网址,并加载页面,在网页加载时对一个用户所执行的JavaScript代码进行插桩,以获取其动态特性,在所需信息的对象上添加一个JS变量,网页执行过程中,这个JS变量被添加和传递,以此来记录用户的动态行为。4.根据权利要求2所述的自动获取网站访问信息的方法,其特征是步骤2)中,采集用户一次访问的一次动态行为:利用火狐浏览器设置代理服务器,这样用户执行的网页经过代理服务器,代理服务器调用Jalangi进行插桩,返回给用户的页面包含步骤一中添加的JS变量,利用Selenium的executeScript方法获取此变量包含的信息,此方法返回object类型的变量,能够对其进行格式转换,转为方便做比较的类型,比如JSON格式;采用Sel...
【专利技术属性】
技术研发人员:张卫丰,陈贵美,刘蕊成,赵晨,许蕾,周国强,张迎周,王子元,
申请(专利权)人:南京邮电大学盐城大数据研究院有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。