需要从网页中抓取 url

Need to scrape an url from a web page

我需要从位于某些 javascript 代码内的网站上抓取 url。

<script type="text/javascript">
    (function() {
        // somewhere..
        $.get("http://someurl.com?q=34343&b=343434&c=343434")...
    });
</script>

我知道url以http://someurl.com?q=开头,里面至少需要有第二个查询参数(&b=),但其余内容未知。

我最初尝试使用 jsoup,但它并不真正适合该任务。手动获取页面然后在其上应用正则表达式模式也不是一个可取的选择,因为页面很大。我该怎么做才能快速安全地获得 url?

您可以使用这个正则表达式

/$\.get\("(http:\/\/someurl\.com\?q=[\w.\-%#\/]*&b=[\w.\-%&=\/]*)"\)/g

此正则表达式将直接搜索此字符串:

$.get("http://someurl.com?q=

然后它将允许任意数量的 URL 有效字符作为 q 的值出现。

然后它会看起来匹配

&b=

然后是任意数量的有效字符,后跟反引号。我用

测试了它
MATCH - $.get("http://someurl.com?q=34343&b=343434&c=343434")
MATCH - $.get("http://someurl.com?q=34343&b=13a43&k=343434&c2=something")
FAIL  - $.get("http://someurl.com?q=34343&c=343434&b=343434")
FAIL  - $.get("http://someurl.com?a=34343&b=343434=343434")

如果您只想return第一个结果,您可以从末尾删除全局标识符

/$\.get\("(http:\/\/someurl\.com\?q=[\w.\-%#\/]*&b=[\w.\-%&=\/]*)"\)/