如何使用python和mechanize模拟AJAX调用(XHR)

时间:2013-07-21 18:37:25

标签: python xmlhttprequest web-scraping screen-scraping mechanize

我正在开发一个自动完成在线作业的项目。 我能够登录,查找练习,甚至使用机械化填写表格。 我发现提交按钮触发了一个javascript函数,我搜索了解决方案。很多答案都是“模拟XHR”。但他们都没有谈到细节。 我不知道这个屏幕帽是否有帮助。 http://i.stack.imgur.com/0g83g.png 感谢

2 个答案:

答案 0 :(得分:0)

如果你想评估javascript,我建议使用Selenium。它将打开一个浏览器,然后您可以从python发送文本。

首先,安装Selenium:https://pypi.python.org/pypi/selenium

然后从此处下载Chrome驱动程序:https://code.google.com/p/chromedriver/downloads/list

将二进制文件放在与您正在编写的python脚本相同的文件夹中。 (或者将其添加到路径或其他内容,更多信息请点击此处:https://code.google.com/p/selenium/wiki/ChromeDriver

之后,以下示例应该有效:

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

driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()

更多信息here (这个例子也来自那里)

答案 1 :(得分:0)

xhr与常规请求相同。以同样的方式,然后处理响应。