我有一个与Scrapy爬虫设置,并试图处理链接。问题是链接是嵌入在Javascript中的,我正在努力创建一个正则表达式。以下是我尝试处理的3个示例:
javascript:openInIFrame('main', 'setup.phtml%3f.op%3d3800%26.who%3dAAAAAAAAAAAA%26.menuItemRefNo=118')
javascript:window.open('overview.phtml?&.who=AAAAAAAAAAAA&.id=2', '43425235', 'menubar=no,toolbar=no,location=no,resizable=yes,maximize=yes');
javascript:openInIFrame('main', "page.phtml%3f.op%3d1499%26.who%3dAAAAAAAAAAAA%26.ifmod%3dtest&.menuItemRefNo=7")
每个的结果相对URL将位于单引号/双引号之间:
setup.phtml%3f.op%3d3800%26.who%3dAAAAAAAAAAAA%26.menuItemRefNo=118
overview.phtml?&.who=AAAAAAAAAAAA&.id=2
page.phtml%3f.op%3d1499%26.who%3dAAAAAAAAAAAA%26.ifmod%3dtest&.menuItemRefNo=7
我尝试过'(.*?)'
和(["'])(?:(?=(\\?))\2.)*?\1
的变体,但似乎无法正确实现。我错过了什么?你知道吗
或许可以试试这样的方法:
http://regex101.com/r/lX6xX8/1
试试这个
对我来说,这输出:
诀窍是
([^'\"]+)
。只要字符不是双引号或单引号,就可以捕获一个或多个字符的任何序列。所以基本上,所有的东西都在URL字符串的末尾,也就是URL。注意,\"
是必需的,因为正则表达式本身是用"
分隔的相关问题 更多 >
编程相关推荐