Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java网站从隐藏在用户点击后面的网站上丢弃数据?_Java_Web Scraping - Fatal编程技术网

Java网站从隐藏在用户点击后面的网站上丢弃数据?

Java网站从隐藏在用户点击后面的网站上丢弃数据?,java,web-scraping,Java,Web Scraping,我试图获取某个部门被选中时的代码,例如,在部门下拉菜单上选择“化学”会显示一个新的图表。问题是,我不知道如何通过正常方式提取HTML代码,因为当我选择一个新部门时,URL不会改变 有没有办法在搜索后检索网站的代码?我希望能够收集基于部门/教师的GPA统计数据 谢谢 问题在于,选择要显示的图形所需的参数不是通过url从浏览器传递到服务器的,而是通过标题和正文传递,以formUrlEncoded的形式传递。 以下是影响html页面呈现的参数: Cookie csrf\u令牌 选择dep 1如何获取这

我试图获取某个部门被选中时的代码,例如,在部门下拉菜单上选择“化学”会显示一个新的图表。问题是,我不知道如何通过正常方式提取HTML代码,因为当我选择一个新部门时,URL不会改变

有没有办法在搜索后检索网站的代码?我希望能够收集基于部门/教师的GPA统计数据


谢谢

问题在于,选择要显示的图形所需的参数不是通过url从浏览器传递到服务器的,而是通过标题和正文传递,以formUrlEncoded的形式传递。 以下是影响html页面呈现的参数:
Cookie
csrf\u令牌
选择dep

1如何获取这些参数的有效值并更改页面显示?

  • selectDep
    :只需选择您想要的图形类型即可(如“化学”) 要获得另外两个参数,您应该首先向执行GET请求,然后可以使用
    Cookie
    csrf\u令牌
  • Cookie
    :若要获得此文件,请从该get请求的响应头获取它
  • csrf\u token
    :要实现此功能,您应该进入GET请求表单的响应体,并从以下html
    input
    标记获取值

2和这些参数

您应该发出POST请求来设置
cookie
值和其他参数(
csrf\u令牌
selectDep

按格式编码。服务器将响应一个HTML,其中包含画布的空容器
,Javascript代码将填充画布。因此,您需要有一个方法来执行返回的HTML+CSS+JS(嵌入java的浏览器),以查看呈现的HTML并提取条的HTML代码。

因此存在一些问题。首先,由于下拉列表不是链接,也不会指向另一个页面,因此如果不首先单击化学选项卡或任何其他选项卡,则很难将其刮除,这可以通过java使用Robot()类来完成,但是,即使您能够做到这一点,下一个任务也很困难。我假设您希望在单击下拉项后显示图形中的数据,这很困难,因为图形是使用
标记创建的,这意味着图形是使用JavaScript绘制的,也意味着您正在搜索的数据可能位于链接的.js文件中(如果是这样的话,你不太可能访问到这些数据),但如果不是这样的话,它就在一个
标签中,理论上可以搜索到。我不认为不可能删除这个网站,但是你一定要花时间研究Zotistics是否有一个API可以大大简化这一过程