php curl抓取网页数据( 我查询了一下,这个代码的意思:form的enctype属性为编码方式)

优采云 发布时间: 2021-12-24 16:23

  php 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的形式传入的参数并没有显示在地址栏中。

  如果你不了解这个参数,你肯定会走弯路,所以在此提醒大家。希望能对大家有所帮助。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线