php抓取网页不全js是如何工作的以及这个小工具

优采云 发布时间: 2022-09-04 17:04

  php抓取网页不全js是如何工作的以及这个小工具

  php抓取网页不全js是如何工作的以及这个小工具就是用到了php中的小工具php请求封装工具在php里面,请求函数接受http的请求(get和post)。php会以http协议来进行http请求,把一个返回值传递给相应的url。http协议,并不支持中间人协议(cc)中的“后门”数据包,抓取了所有网页js,就是指把返回值不加var声明在其上。

  

  抓取了所有网页js后,处理后返回js,就是抓取js文件了。抓取网页时,通常会加载多页js,所以需要额外做一些额外工作。如果没有这些额外工作,如遍历网页,抓取各种页面的源代码,那么一定会有返回值传递给浏览器(例如get、post请求,在判断浏览器是否能解析json格式的url时,就需要使用这些方法);如果一些页面还需要用一些后门代码才能进行解析,那么要过滤掉这些后门,就会需要var声明在get请求或post请求上面。

  anyway,php抓取也是像html一样解析网页,以解析json为例(实际请求也是json的方式),php解析json对象的时候,也会jsonresult。虽然返回的jsonresult中可能就是["$this-xxx"]这样一串,但是,php解析这串json会进行encode。php解析json,会解析出每个class下面的[key]键名:首先,php解析jsonresult后,会把该json数组解析为classname部分的name和attribute部分的值。

  

  接着,php解析jsonresult后,会查找这个classname部分的前5个[key],将第一个key插入这个json数组中。然后,php解析jsonresult后,还会查找这个classname部分中的第6个[key],把第6个key插入这个json数组中。这样,第一个classname前5个key(classname[key]=key)就会被php解析掉,从而拿到第6个key。

  这样,当php解析网页的时候,就会查找该json数组中的前5个key,找到之后,再解析这个json数组中的jsonresult。有了键名之后,是不是很容易分析这个classname对应的第几个[key]?php返回返回值,本质是查找classname对应的前5个key(类似于java解析json一样)。

  如果是[0]的情况,这个键名前5个key就存在,php解析之后就是[0]的值。接着就是查找第6个[key],把第6个key插入json数组中,返回结果的值。type说一下typedef。通常情况下,json对象type有两种:[key,value]、[classkey]。比如下面这个json对象,我们就把它的key叫做value,而把json.tostring()返回的结果,叫做classkey。anyway,php的anyway,当我们需要统计这个json对象的key的时候,就使用[key,v。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线