Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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
JSoup和Javascript代码_Javascript_Html_Regex_Parsing_Jsoup - Fatal编程技术网

JSoup和Javascript代码

JSoup和Javascript代码,javascript,html,regex,parsing,jsoup,Javascript,Html,Regex,Parsing,Jsoup,我的HTML代码中有一个Javascript。我想浏览以“Doc”结尾的链接。在这个HTML中只有一个链接,叫做SunnydataDoc。所以我想在这个页面上搜索这个字符串,如果存在任何以“Doc”结尾的链接,我想在这些页面中进一步向下导航。 你能帮我解决这个问题吗?我听说我可以将regex和match方法与Jsoup结合使用。 这是我的密码 <script> var data = {"totalRecords": 2, "sort": "name", "startIndex

我的HTML代码中有一个Javascript。我想浏览以“Doc”结尾的链接。在这个HTML中只有一个链接,叫做SunnydataDoc。所以我想在这个页面上搜索这个字符串,如果存在任何以“Doc”结尾的链接,我想在这些页面中进一步向下导航。 你能帮我解决这个问题吗?我听说我可以将regex和match方法与Jsoup结合使用。 这是我的密码

<script>
    var data = {"totalRecords": 2, "sort": "name", "startIndex": 0, "dir": "asc", "records": [{"raw_name": "samia/export/sunnydata", "last_changeset": "\n  <div>\n      <pre><a title=\"ownerID:\n\nAdded tag V2.11.d50.mkt.001 for changeset 56e10a4864ff\" class=\"tooltip\" href=\"/samia/export/sunnydata/changeset/f602409eba261d749d23dc75551b2959425dfa8d\">r17:f602409eba26</a></pre>\n  </div>\n", "atom": "\n    <a title=\"Subscribe to samia/export/sunnydata atom feed\" href=\"/samia/export/sunnydata/feed/atom?api_key=e214ebea2335318bee1460a1fd33725ab3e1002e\"><i class=\"icon-rss-sign\"  style=\"color: #fa9b39\"></i></a>\n", "owner": "ownerID (Owner)", "rss": "\n    <a title=\"Subscribe to samia/export/sunnydata rss feed\" href=\"/samia/export/sunnydata/feed/rss?api_key=e214ebea2335318bee1460a1fd33725ab3e1002e\"><i class=\"icon-rss-sign\" style=\"color: #fa9b39\"></i></a>\n", "name": "\n    \n  <div style=\"white-space: nowrap; }\">\n        <a href=\"/samia/export/sunnydata\">\n\n        <span title=\"Mercurial repository\"><i class=\"icon-hg\" style=\"color: #316293; font-size: 14px;\"></i></span>\n\n      <span style=\"margin: 0px 8px 0px 8px\"></span>\n    Sunnydata\n    </a>\n  </div>\n", "last_rev_raw": 17, "state": "\n  <div>\n        <div class=\"btn btn-mini btn-success disabled\">Created</div>\n  </div>\n", "menu": "\n  <ul class=\"menu_items hidden\">\n\n    <li style=\"border-top:1px solid #003367;margin-left:18px;padding-left:-99px\"></li>\n    <li>\n       <a title=\"Summary\" href=\"/samia/export/sunnydata\">\n       <span class=\"icon\">\n           <i class=\"icon-file-text\"></i>\n       </span>\n       <span>Summary</span>\n       </a>\n    </li>\n    <li>\n       <a title=\"Changelog\" href=\"/samia/export/sunnydata/changelog\">\n       <span class=\"icon\">\n           <i class=\"icon-list-alt\"></i>\n       </span>\n       <span>Changelog</span>\n       </a>\n    </li>\n    <li>\n       <a title=\"Files\" href=\"/samia/export/sunnydata/files/tip/\">\n       <span class=\"icon\">\n           <i class=\"icon-file-alt\"></i>\n       </span>\n       <span>Files</span>\n       </a>\n    </li>\n    <li>\n       <a title=\"Fork\" href=\"/samia/export/sunnydata/fork\">\n       <span class=\"icon\">\n           <i class=\"icon-code-fork\"></i>\n       </span>\n       <span>Fork</span>\n       </a>\n    </li>\n  </ul>\n", "desc": "GHU Sunnydataimport", "last_change": "\n  <span class=\"tooltip\" date=\"2014-08-21 18:49:50\" title=\"Thu, 21 Aug 2014 18:49:50\">10 days and 16 hours ago</span>\n"}, {"raw_name": "samia/export/sunnydatadoc", "last_changeset": "\n  <div>\n      <pre><a title=\"ownerID;lt;owneremail;gt;:\n\nChangedokumentation\" class=\"tooltip\" href=\"/samia/export/sunnydataDoc/changeset/9ed1679c7a35b76e1402b540cee38000461fdfdd\">r0:9ed1679c7a35</a></pre>\n  </div>\n", "atom": "\n    <a title=\"Subscribe to samia/export/sunnydataDoc atom feed\" href=\"/samia/export/sunnydataDoc/feed/atom?api_key=e214ebea2335318bee1460a1fd33725ab3e1002e\"><i class=\"icon-rss-sign\"  style=\"color: #fa9b39\"></i></a>\n", "owner": "ownerID (Owner)", "rss": "\n    <a title=\"Subscribe to samia/export/sunnydataDoc rss feed\" href=\"/samia/export/sunnydataDoc/feed/rss?api_key=e214ebea2335318bee1460a1fd33725ab3e1002e\"><i class=\"icon-rss-sign\" style=\"color: #fa9b39\"></i></a>\n", "name": "\n    \n  <div style=\"white-space: nowrap; }\">\n        <a href=\"/samia/export/sunnydataDoc\">\n\n        <span title=\"Mercurial repository\"><i class=\"icon-hg\" style=\"color: #316293; font-size: 14px;\"></i></span>\n\n      <span style=\"margin: 0px 8px 0px 8px\"></span>\n    SunnydataDoc\n    </a>\n  </div>\n", "last_rev_raw": 0, "state": "\n  <div>\n        <div class=\"btn btn-mini btn-success disabled\">Created</div>\n  </div>\n", "menu": "\n  <ul class=\"menu_items hidden\">\n\n    <li style=\"border-top:1px solid #003367;margin-left:18px;padding-left:-99px\"></li>\n    <li>\n       <a title=\"Summary\" href=\"/samia/export/sunnydataDoc\">\n       <span class=\"icon\">\n           <i class=\"icon-file-text\"></i>\n       </span>\n       <span>Summary</span>\n       </a>\n    </li>\n    <li>\n       <a title=\"Changelog\" href=\"/samia/export/sunnydataDoc/changelog\">\n       <span class=\"icon\">\n           <i class=\"icon-list-alt\"></i>\n       </span>\n       <span>Changelog</span>\n       </a>\n    </li>\n    <li>\n       <a title=\"Files\" href=\"/samia/export/sunnydataDoc/files/tip/\">\n       <span class=\"icon\">\n           <i class=\"icon-file-alt\"></i>\n       </span>\n       <span>Files</span>\n       </a>\n    </li>\n    <li>\n       <a title=\"Fork\" href=\"/samia/export/sunnydataDoc/fork\">\n       <span class=\"icon\">\n           <i class=\"icon-code-fork\"></i>\n       </span>\n       <span>Fork</span>\n       </a>\n    </li>\n  </ul>\n", "desc": "GHU Sunnydataimport (Dokumentation)", "last_change": "\n  <span class=\"tooltip\" date=\"2014-04-25 11:03:45\" title=\"Fri, 25 Apr 2014 11:03:45\">4 months and 6 days ago</span>\n"}]};
    var myDataSource = new YAHOO.util.DataSource(data);
    myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;

var data={“totalRecords”:2,“sort”:“name”,“startIndex”:0,“dir”:“asc”,“records”:[{“raw\u name”:“samia/export/sunnydata”,“last\u changeset”:“\n\n\n”,“atom”:“\n\n”,“ownerID(owner)”,“rss”:“\n\n”,“name”:“\n\n\n\n\n”,“last\u revu raw”:17,“state”:“\n\n\n创建的\n\n\n”,“菜单”:“\n
    \n\n
  • \n
  • \n\n
  • \n\n\n\n\n\n\n\n\n原始名称“:”samia/export/sunnydatadoc“,”last\u changeset“:”n\n\n\n“,”atom“,”n\n“,”所有者“,”所有者ID(所有者)”,”rss“,”n\n“,”名称“:”\n\n\n\n\n“,”上次修订原始“:”0,“状态“:”\n\n\n\n创建的\n\n\n“菜单”:“\n\n\n\n=\“边框顶部:1px实心#003367;左边距:18px;左边填充:-99px\”>
  • \n\n
  • \n
  • \n\n
  • \n
  • \n\n
  • \n\n\n
\n”,“描述”:“GHU Sunnydataimport(Dokumentation)”,“上次更改”:“\n 4个月和6天前”}; var myDataSource=newyahoo.util.DataSource(数据); myDataSource.responseType=YAHOO.util.DataSource.TYPE_JSON;
在这个例子中,我有一个链接:href=\“/samia/export/sunnydataDoc\”。我想把这个链接和我的代码一起放进去

这是我的Java代码

Pattern p = Pattern.compile("href\\s*=\\s*\"([^\"]+Doc)\"");
公共类JScript测试{
公共静态void main(字符串[]args)引发IOException{
响应res=Jsoup
.连接(
“url”)
.数据(“用户名”、“用户名”、“密码”、“密码”)
.method(method.POST).execute();
Map loginCookies=res.cookies();
文档doc=Jsoup.connect(“url”)
.cookies(loginCookies.get();
元素脚本=doc.select(“href”).last();
Pattern p=Pattern.compile(“href\s=\s”([^“]+Doc)”);//用于href值的Regex
Matcher m=p.Matcher(script.html());//此处必须使用html而不是文本!文本将删除“href”部分
while(m.find())
{
System.out.println(m.group());
系统输出println(m.group(1));
}
}
私有静态无效打印(字符串消息、对象…参数){
System.out.println(String.format(msg,args));
}
所以我在“模式…”行中出现了错误


感谢您的关注。

此正则表达式将为您提供以
文档结尾的链接。
我不确定“进入”是什么意思,但这将有助于您前进。组1包含URL

Java中正确转义的


我正在为此使用模式和匹配器。这样正确吗?我会收到错误。`pattern p=pattern.compile(href\s*=\s*“([^”]+Doc)”;matcher m=p.matcher(script.html());您似乎混淆了Java和JavaScript。尽管名称上有令人遗憾的相似之处,但它们之间几乎没有什么联系。您的
标记让我觉得您在网站上使用JavaScript,但是
Pattern p=Pattern.compile()
是Java。请看这里有关JavaScript正则表达式的帮助:不,我没有混淆。我使用Jsoup编程,这是Java,在HTML代码中包含JavaScript代码,我使用Jsoup解析和获取。我举了一个例子,希望在我的代码中构建您的方法。啊,这就解释了。您能用Java更新您的问题吗您拥有的代码?看起来您忘记了将正则表达式放入
中,并在正则表达式中转义
,您可以在您提供的链接中看到,仔细查看
\”
的位置:
模式p=Pattern.compile(“(?is)key=\”(.+?)\”;
已更新。对于您的问题,请使用“进入”,我的意思是我想进入“href=http:/…../…Doc”链接并做更多的事情。
href\s*=\s*"([^"]+Doc)"
Pattern p = Pattern.compile("href\\s*=\\s*\"([^\"]+Doc)\"");