06.02 Java爬虫教程,如何破解表单提交的数据参数

在编写爬虫程序的时候,一般的url中会携带页码的参数,例如某平台的主页:

*******************/all?page=3&isAjax=1,其中page就代表页码,在爬取的时候只需要利用for循环,将page的值分别设置为1、2、3等即可。

但是有些网站的url属于不会变化的,即其参数所在的位置并不存在于url当中,例如下图中的网站,当你翻页的时候url并不会改变,这时,如果要得到该网站前三页公司名称数据,该如何操作呢?

Java爬虫教程,如何破解表单提交的数据参数

Java爬虫教程,如何破解表单提交的数据参数

首先打开网站,然后打开F12检查页面元素,发现此处有一项参数,位于FormDate下,在页码变动时,该参数的值也会跟着变动。这时可初步判断该参数跟页码有关。

Java爬虫教程,如何破解表单提交的数据参数

但是对于这个网站,采用传统的拼接url方式爬虫将无法获取页面数据,因为在url中携带参数属于get请求。而get请求和post请求最直观的区别就是post请求所携带的参数是存于form表单当中的,此时正需要以模拟表单提交的方式来请求页面,具体代码如下:

Java爬虫教程,如何破解表单提交的数据参数

Java爬虫教程,如何破解表单提交的数据参数

图中使用NameValuePair的类,这个类是原生Httpclient中自带的类,经常被用于拼凑post请求参数。此时封装好请求并发送,会返回该网站中实际的html数据,接下来在通过Jsoup对数据进行简单的处理,即可得到公司的名称。

Java爬虫教程,如何破解表单提交的数据参数

需要源码请私信,欢迎大家一起交流爬虫方面的经验


分享到:


相關文章: