php抓取网页指定内容(php.ini中的max_execution设置设置的大点软件)

优采云 发布时间: 2022-01-11 19:12

  php抓取网页指定内容(php.ini中的max_execution设置设置的大点软件)

  在做爬取之前,记得把php.ini中的max_execution_time设置大一点,否则会报错。

  一、 使用 Snoopy.class.php 抓取页面

  一个很可爱的班级名字。功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等。

  1)我要抓取网站的一个列表页的内容,我要抓取的是全国医院信息内容,如下图:

  2)我自然是复制了URL地址,用Snoopy类抓取前10页的内容,并将内容放到本地,在本地创建了一个html文件,用于后面的分析。

  

  $snoopy=new Snoopy();

//医院list页面

for($i = 1; $i fetch($url);

file_put_contents("web/page/$i.html", $snoopy->results);

}

echo \'success\';

  

  3)很奇怪,返回的内容不是国家内容,而是上海的相关内容

  4) 后来怀疑里面可能设置了一个cookie,然后用firebug查了一下,有一个惊人的内幕

  5)请求中也放入了cookie的值,加上了一个设置语句$snoopy->cookies["_area_"],情况就大不一样了,顺利返回全国信息。

  $snoopy=new Snoopy();

//医院list页面

$snoopy->cookies["_area_"] = \'{"provinceId":"all","provinceName":"全国","cityId":"all","cityName":"不限™"}\';

for($i = 1; $i results;

}

  2)使用phpQuery获取节点信息,如下图DOM结构:

  使用一些phpQuery方法,结合DOM结构读取各个医院信息的URL地址。

  

  for($i = 1; $i attr(\'href\')); //医院详情

}

}

  

  3)根据读取的URL地址列表,抓取指定页面。

  

  $detailIndex = 1;

for($i = 1; $i results);

$detailIndex++;

}

}

  

  FQ工具下载:

  克服障碍.rar

  演示下载:

  关于 Snoopy 类的一些注意事项:

  类方法

  获取($URI)

  这是用于抓取网页内容的方法。

  $URI 参数是被抓取网页的 URL 地址。

  获取的结果存储在 $this->results 中。

  如果你正在抓取一个帧,Snoopy 会将每个帧跟踪到一个数组中,然后是 $this->results。

  获取文本($URI)

  该方法与 fetch() 方法类似,唯一不同的是该方法会去除 HTML 标签等无关数据,只返回网页中的文本内容。

  获取表单($URI)

  该方法与fetch()类似,唯一不同的是该方法会去除HTML标签等无关数据,只返回网页中的表单内容(form)。

  获取链接($URI)

  该方法与 fetch() 方法类似,唯一不同的是该方法会去除 HTML 标签等无关数据,只返回网页中的链接。

  默认情况下,相对链接将自动完成为完整的 URL。

  提交($URI,$formvars)

  此方法向 $URL 指定的链接地址发送确认表单。$formvars 是一个存储表单参数的数组。

  提交文本($URI,$formvars)

  这个方法和submit()类似,唯一的区别是这个方法会去掉HTML标签等不相关的数据,登录后只返回网页的文本内容。

  提交链接($URI)

  这个方法和submit()类似,唯一的区别是这个方法会去掉HTML标签等不相关的数据,只返回网页中的链接。

  默认情况下,相对链接将自动完成为完整的 URL。

  类属性

  $主机

  连接主机

  $端口

  连接端口

  $proxy_host

  使用的代理主机(如果有)

  $proxy_port

  要使用的代理主机端口(如果有)

  $代理

  用户代理伪装(史努比 v0.1)

  $推荐人

  到达信息,如果有的话

  $cookies

  饼干,如果有的话

  $原创头文件

  其他标题信息(如果有)

  $maxredirs

  最大重定向数,0 = 不允许 (5)

  $offsiteok

  是否允许异地重定向。(真的)

  $展开链接

  是否完成链接到完整地址(true)

  $用户

  身份验证用户名(如果有)

  $通行证

  身份验证用户名(如果有)

  $接受

  http 接受类型(image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)

  $错误

  错误在哪里,如果有的话

  $response_code

  服务器返回的响应码

  $标头

  从服务器返回的标头

  $最大长度

  最大返回数据长度

  $read_timeout

  读取操作超时(需要 PHP 4 Beta 4+),设置为 0 表示无超时

  $timed_out

  如果读取操作超时,此属性返回 true(需要 PHP 4 Beta 4+)

  $最大帧数

  允许跟踪的最大帧数

  $状态

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线