您的位置 首页 php

PHP_curl抓取分页数据特例(对于链接不变的数据抓取)

这两天抓取数据时遇到一个小坑,给大家分享一下,抓取的分页数据,先说明分页通过post提交实现,并且固定链接没有变化,也不是 ajax 每次提交都会刷新页面,所以无法获取到其第二页的数据,不管怎么通过post请求,返回的都是第一页的数据,试了很多次post的值都是无效的,并且他的form表单中的action值确实是post,所以导致我设置了header头,以及cookie等参数始终无效,后来在查看他的header头信息中查到一段代码,原来关键在这里Content-Type:application/x-www-form-urlencoded我查询了一下,这个代码的意思如下:

form表单的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。

介绍一下两种 编码 格式。

1.application/x-www-form-urlencoded

当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个 字串 (name1=value1&name2=value2…),然后把这个字串加到url后面,用?分割,加载这个新的url。

2.multipart/form-data

当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有设置type=file,用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用到multipart/form-data了。

通过上面的代码我才知道,虽然他是用的post请求的,但是他似乎请求方式还是这种方式application/x-www-form-urlencoded,所以只需要在原有的链接加上?name1=value1&name2=value2…就可以知道他的链接。

原来他的post是一个幌子,实际上还是以get形式传递的参数,只是在地址栏没有显示出来。

如果对这个参数不了解的话确实会走弯路,所以给大家提个醒。希望对大家能有所帮助。

作者:吾林爱分享

文章来源:智云一二三科技

文章标题:PHP_curl抓取分页数据特例(对于链接不变的数据抓取)

文章地址:https://www.zhihuclub.com/76723.shtml

关于作者: 智云科技

热门文章

网站地图