Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用Mechanize重定向后需要获取页面信息_Python_Forms_Redirect_Web_Mechanize - Fatal编程技术网

在Python中使用Mechanize重定向后需要获取页面信息

在Python中使用Mechanize重定向后需要获取页面信息,python,forms,redirect,web,mechanize,Python,Forms,Redirect,Web,Mechanize,我花了很长时间在网络上寻找答案,以及许多其他堆栈溢出页面。然而,他们似乎都没有完全回答我的问题。所以情况是,我正在输入表单并提交,这会将我带到正确的页面。该页面基本上是一个加载页面,因为工作由网站完成,通常需要10-20秒。完成后,它通常会重定向用户,但我不知道如何让我的脚本重定向并读取新页面上的表单。我无法格式化URL以访问页面,它必须位于加载页面上,网站才能执行其工作并将您重定向到自定义URL。如何让脚本等待几秒钟,然后重定向,然后从新页面读取信息?如果您可以使用selenium,这非常简单

我花了很长时间在网络上寻找答案,以及许多其他堆栈溢出页面。然而,他们似乎都没有完全回答我的问题。所以情况是,我正在输入表单并提交,这会将我带到正确的页面。该页面基本上是一个加载页面,因为工作由网站完成,通常需要10-20秒。完成后,它通常会重定向用户,但我不知道如何让我的脚本重定向并读取新页面上的表单。我无法格式化URL以访问页面,它必须位于加载页面上,网站才能执行其工作并将您重定向到自定义URL。如何让脚本等待几秒钟,然后重定向,然后从新页面读取信息?

如果您可以使用selenium,这非常简单:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox()
browser.get("http://www.stackoverflow.com") 

# fill data in the form
first_name_element = driver.find_element_by_name("first_name")
first_name_element.send_keys("Abc")
last_name_element = driver.find_element_by_name("last_name")
last_name_element.send_keys("Xyz")

elem.send_keys(Keys.RETURN) #submit the form
time.wait(20) # wait for 20 sec

# do something here with your final redirected page 

browser.close()
不利的一面是,这将打开一个firefox窗口,用户操作将发生
自动地,所有这些看起来都令人毛骨悚然。

使用硒更容易做到这一点