【问题标题】:Requests HTML JavaScript hidden input请求 HTML JavaScript 隐藏输入
【发布时间】:2020-05-03 21:06:06
【问题描述】:

试图通过 request-html 获取指纹值以输入自动登录:

# import HTMLSession from requests_html
from requests_html import HTMLSession
import time

# create an HTML Session object
session = HTMLSession()

# Use the object above to connect to needed webpage
resp = session.get("https://slatehouse.appfolio.com/users/sign_in")

# Run JavaScript code on webpage
resp.html.render()

sel = '#fingerprint' 
fp = resp.html.find(sel)

print(fp)

代码输出:

[<Element 'input' type='hidden' name='fingerprint' id='fingerprint'>]

没有 value 键,我认为它是由 javascript 生成的(认为渲染会允许它被挑选出来)

【问题讨论】:

    标签: javascript screen-scraping hidden python-requests-html


    【解决方案1】:

    在真实浏览器中执行了网页的 JS 我得到了:

    <form class="form form--stacked form--full-width" id="new_user" data-type="html" 
    novalidate="novalidate" action="/users/sign_in" accept-charset="UTF-8" 
    method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input 
    type="hidden" name="authenticity_token" 
    value="Du0TCAO+OjBXO6wYTkzlnl8N3d+n7Ls/giLYFxqb2EAQzshbYqs3Ngv3LdA==" />
    <input type="hidden" name="fingerprint" id="fingerprint">
    <input type="hidden" name="nfo" id="nfo"> 
    

    输入确实没有价值属性。 (在 JS 渲染之后)...所以,我猜你需要的值在前面的输入中:

    value="Du0TCAO+OjBXO6wYTkzlnl8N3d+n7L...LYFxqb2EAQzshbYqs3Ngv3LdA=="
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多