我正在做一个Scapy的脚本,使用XPath,收集一些网页信息。我想提取的JavaScript的网址:
<div class="is-hidden-mobile blEntry menu ui_link" data-column="3" onclick="widgetEvCall('handlers.onMenuClicked', event, this, 'http://www.zzz.com/')">
<span class="ui_icon menu"></span>
<span class="detail">Menu </span>
</div>
所以,我测试这个命令:
substring-before(substring-after(//@onclick, "'handlers.onMenuClicked', event, this, '"),"'")
和它的作品在Xpath的测试仪。
但是,当我把它放在我的Python脚本,我已经报价问题。于是,我就放反斜杠,但它不工作:
website = response.xpath('substring-before(substring-after(//@onclick, "\'handlers.onMenuClicked\', event, this"),"\'")').extract()
我期待在网络上,但我没有看到任何答案:S。我觉得我的剧本是复杂的,可以简化,但我不知道怎么的xD。或者,也许有有在脚本中简单的引号中的解决方案...
感谢您的帮助的问候
术后第2天寻找,我找到了答案:d
response.xpath('//div[@class="is-hidden-mobile blEntry menu ui_link"]').re('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+')
我把所有的XPath的答案,我提取与正则表达式的URL。
问候