2

我有一个 url www.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'})

这给出了“无”

那么我该怎么做呢?

谢谢

4

1 回答 1

0

br.find适用于 html,并且由于您想要的东西在 JS 调用中,所以我们不能使用它。

所以其他选择是

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

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

  2. lxml.html(xpath)
    这是我可能更喜欢的另一种方式,lxml.html或者import html from lxml是同一件事

这是它的一些代表。

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

你可以在这里找到更多我可以使用 python、selenium 和 lxml 解析 xpath 吗?并 查看文档

我希望我是有帮助的。

干杯。

于 2017-08-17T16:15:29.283 回答