php curl抓取网页数据( 我查询了一下,这个代码的意思:form的enctype属性为编码方式)
优采云 发布时间: 2021-12-24 16:23php curl抓取网页数据(
我查询了一下,这个代码的意思:form的enctype属性为编码方式)
这两天爬数据的时候遇到了一个小坑。我将爬取的分页数据分享给大家。首先说明分页是通过post提交实现的,固定链接没有变化。并不是每次提交ajax都会刷新页面,所以它不能在获取到第二页的数据后,无论怎么post请求,返回的数据都是第一页。多次尝试后,post的值无效,他表单中的action值确实是post。所以我设置了headerheader,cookie等参数总是无效的。后来在header头部信息中发现了一段代码。原来,关键就在这里。
Content-Type:application/x-www-form-urlencoded 我查了下,这段代码的意思如下:
表单的 enctype 属性是编码方式。常用的方法有两种:
application/x-www-form-urlencoded 和 multipart/form-data,默认是
应用程序/x-www-form-urlencoded。
介绍两种编码格式。
1.application/x-www-form-urlencoded
当action为get时,浏览器使用x-www-form-urlencoded编码方式将表单数据转换为字符串(name1=value1&name2=value2...),然后将此字符串添加到url的后面,用 ? 分割,并加载这个新的 url。
2.multipart/form-data
当action为post时,浏览器将表单数据封装在http body中,然后发送给服务器。如果未设置 type=file,则使用默认值
application/x-www-form-urlencoded 就可以了。但是如果有type=file,会使用multipart/form-data。
通过上面的代码,我知道他虽然使用了post请求,但是请求的方式好像还是这样。
应用程序/x-www-form-urlencoded,所以只需将其添加到原创链接中?name1=value1&name2=value2...你可以知道他的链接。
原来他的帖子是幌子,但实际上以get的形式传入的参数并没有显示在地址栏中。
如果你不了解这个参数,你肯定会走弯路,所以在此提醒大家。希望能对大家有所帮助。