nodejs抓取动态网页(外汇nodejs抓取动态网页的方法及方法)

优采云 发布时间: 2022-01-13 08:01

  nodejs抓取动态网页(外汇nodejs抓取动态网页的方法及方法)

  nodejs抓取动态网页的方法一般分为两种:1.nodejs将动态链接转换为响应json然后json的格式转换为script标签。2.nodejs直接访问页面,不转换json,json格式转换为script标签。我习惯用第二种方法,效率高,能满足我们不同场景要求。下面我将结合具体场景,分别介绍nodejs抓取动态网页时常用的技巧,大家可以结合自己的具体需求来参考或提出自己的问题。

  我先总结下我总结的规律:如果涉及url改变的话,会针对iframe、frame、documentjs来同步改变。如果iframe的话,从头抓取到尾一般只需要换http头及头部的header,http体是保持不变的。在我们解析后端url的时候,在nodejs内加载完一个页面(生成页面路径)后,并不会立即获取document对象,而是再response过来,在解析时,所有动态链接都会先存在于dom中,处理该部分动态链接的方法有很多,我会有空再整理下,直接列几个常用的。

  我会通过介绍大致的技巧及代码来概括nodejs动态链接抓取的一些原理。2.1url构造方法3.1.1获取dom树及dom事件4.1.2遍历dom树并构造正则表达式4.2获取dom全部数据这里用到了正则表达式可以匹配iframe中所有的数据。注意,在这个场景中,我们不希望使用iframe/frame中的数据,这里我采用的是存放动态网页的object对象中的数据。

  返回json数据时,提取的json格式是json为了方便,我们对object进行嵌套,添加dom部分。object["iframe"]=json["iframe"][0];exportfunctiongetpdy(path,siteref){if(path.length==0){returntrue;}document.open(path,siteref);document.getelementsbytagname("img")[0].attrib("property")[0].style.display="none";returnfalse;}2.2.1获取dom树及dom事件方法3.1.1构造urldocument.open(path,siteref),结果是一个url,该url包含:a标签。

  使用open方法,获取该url需要注意的是:a标签如果在里面,则需要取a标签里面的字符串,否则,会被获取其他内容。然后,再取siteref的数据即可。3.1.2遍历dom树并构造正则表达式document.open(url,matches);document.open()是在open方法的参数作用下,执行里面的所有方法。

  3.1.3遍历dom树并构造正则表达式document.open(path,matches);matches是接受来自open方法参数作用下的所有方法。也就是接受与open方法有关的方法。functiongetpdy(path,siteref){if(path.length==0)。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线