在响应表单中找到 javascript 中的一些值

find some value in javascript, in the response form

我有一个urlwww.example.com/test 所以通过使用 robobrowsker 访问这个 url,我找到了一些 js 作为响应,它包含类似这样的东西

var token = _.unescape("<input name="__RequestVerificationToken" type="hidden" value="wi5U8xXijdXRrPR4aG84OAjSLsuS1YqTV4X7VLDnWeuwr72D39H-KXBsyG7eZEZPT7YXW7GF26IiQBrW0vcEZd5Bqrjof_CVEUFRTDPS4rx68Opmi6juZXnGDEtb9nsBXxM4Why2WNlflqFM6purXw2" />");
    aw.antiforgeryToken[$(token).attr('name')] = $(token).val();

我想得到'wi5U8xXijdXRrPR4aG84OAjSLsuS1YqTV4X7VLDnWeuwr72D39H-KXBsyG7eZEZPT7YXW7GF26IiQBrW0vcEZd5Bqrjof_CVEUFRTDPS4rx68Opmi6juZXnGDEtb9nsBXxM4Why2WNlflqFM6purXw2'

我试过了

browser=RoboBrowser()
browser.open('https://www.example.com/test')
result=browser.find('script',{'name':'__RequestVerificationToken'})

这给出 'None'

那我该怎么做呢?

谢谢

br.find 适用于 html,由于您想要的内容在 JS 调用中,因此我们无法使用它。

所以其他选项是

  1. 使用 rejex(在我看来有点硬编码)

    通过查找最终包含所需数据的节点所在的父节点,然后通过正则表达式找到该字符串,即 'wi5U8xXijdXRrPR4aG84OAjSLsuS1YqTV4X7VLDnWeuwr72D39H-KXBsyG7eZEZPT7YXW7GF26IiQBrW0vcEZd5Bqrjof_CVEUFRTDPS4rx68Opmi6juZXnGDEtb9nsBXxM4Why2WNlflqFM6purXw2'

  2. lxml.html (xpath)
    我可能更喜欢的另一种方式是 lxml.htmlimport html from lxml 一样的东西

这是它的一些代表。

data = lmxl.html(parsedData)
stuff = data.xpath('XPATH to you data')

您可以在此处找到更多信息 Can I parse xpath using python, selenium and lxml? and have a look in docs 还有

希望对您有所帮助。

干杯。