php可以抓取网页数据吗( 我查询了一下,这个代码的意思:form的enctype属性为编码方式)
优采云 发布时间: 2022-01-02 16:18php可以抓取网页数据吗(
我查询了一下,这个代码的意思:form的enctype属性为编码方式)
这两天爬数据的时候遇到了一个小坑。让我与你分享。爬取的分页数据,先说明分页是通过post提交实现的,固定链接没有变,也不是ajax每次提交都会刷新页面。 , 所以无法获取到第二页的数据。不管post请求如何传递,返回的数据都是第一页。经过多次尝试,post的值无效,而他表单中的action值确实是post,所以我设置了header header,cookie等参数一直无效。后来在header头部信息中发现了一段代码。原来,关键就在这里。 Content-Type: application/x-www-form-urlencoded me 经过检查,这段代码的含义如下:
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编码方式将表单数据转换为字符串(name1=value1&name2=value2...),然后将此字符串添加到后面网址,使用?拆分并加载这个新网址。
2.multipart/form-data
action 为 post 时,浏览器将表单数据封装在 http body 中,然后发送到服务器。如果未设置 type=file,则使用默认的 application/x-www-form-urlencoded。但是如果有type=file,就会使用multipart/form-data。
我从上面的代码中了解到,虽然他用的是post请求,但是好像请求的方式还是这样,application/x-www-form-urlencoded,所以我只需要在原链接里加上就可以了? name1=value1&name2=value2...你可以知道他的链接。
原来他的帖子是幌子,其实还是get形式传入的参数,只是地址栏没有显示。
如果不了解这个参数,肯定会少走弯路,所以在此提醒大家。希望对大家有帮助。