这两天抓取数据时碰着一个小坑,给大家分享一下,抓取的分页数据,先解释分页通过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形式通报的参数,只是在地址栏没有显示出来。
如果对这个参数不理解的话确实会走弯路,以是给大家提个醒。希望对大家能有所帮助。
作者:吾林爱分享