我想在Just-Eat中剪贴表格,但似乎该表格不存在! 我使用该代码:
br.open("https://www.just-eat.fr/")
form = br.get_forms()
但是表格未检测到任何表格!但是,当您继续使用代码源时,我们可以找到一种形式:
<form class="search-form autocomplete-target" action="#" id="geolocate_form_home">
我不知道如何使它可检测!有人知道吗?
非常感谢!
答案 0 :(得分:0)
服务器仅发送带有<iframe>
的页面,其中包含出于安全原因而阻止的消息。
User Agent
标头中的第一个问题。通常,Python使用python-requests/2.21.0
,但是服务器可能需要在实际浏览器中使用User Agent
。例如Linux上的Firefox
br = robobrowser.RoboBrowser(user_agent='Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0')
但是它仍然可以发送带有消息的<iframe>
页面。
但是如果我再次加载相同的网址,那么它将加载正确的页面。
可能现在它已经需要所有cookie,并且服务器也没有出现问题。
如果您愿意,也可以从<iframe>
加载页面,使其表现得像真实的人类。
import robobrowser
br = robobrowser.RoboBrowser(user_agent='Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0')
br.parser = 'lxml'
br.open("https://www.just-eat.fr")
#print(br.parsed)
print(br.get_forms())
#iframe_src = br.select('iframe')[0]['src']
#print(iframe_src)
#br.open("https://www.just-eat.fr"+iframe_src)
#print(br.parsed)
br.open("https://www.just-eat.fr")
#print(br.parsed)
print(br.get_forms())