是否可以使用python脚本在浏览器(Chrome / Firefox)中打开网站?

时间:2015-03-08 08:02:08

标签: python google-chrome http firefox tcp

当我在浏览器地址栏中写下网站地址并点击Go时,浏览器会发出如下信息包:

GET / HTTP/1.1
Host: stackoverflow.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: __qca=P0-1436433254-1422702693572; sgt=id=e2dfc663-bf2a-4c13-9387-91db3c901b72; usr=t=5Or7fZxDxUa8&s=xyx0L95dfE61; acct=t=OzuSyto294xCVVgU1B2tOow2C%2bSXqT0m&s=WmMKQ3H9NtZs%2b4%2bfbSnoLretaRnysYju; _ga=GA1.2.1042841397.1422702694
Connection: keep-alive

我使用 BurpSuite tool 抓住了上述数据包,这是对StackOverflow.com的请求

现在我想知道有没有办法用python自动化这个请求?

换句话说,我想用Python脚本发送上述数据包,并在浏览器中接收答案(例如Chrome)。有可能吗?

注意: 我也想修改数据包。我不想只发送简单的网站请求。我也想更改请求数据包的某些部分。例如,在某些数据包中,有一个名为 challenge 的参数,我想发送一个具有不同挑战的网站的请求。此外,假设我想自动填写网站中的表单(例如,注册不同的用户)。 (不完全是通过填写表单。当我点击注册确认时发送浏览器发送的相同数据包)

更新:

实际上,我想对Web服务器进行压力测试。因此,我想发送一系列具有不同标头的请求(即对不同用户的请求),为1000个不同的用户执行1000次单个事务。最后,我想查看事务是否成功完成。 (假设交易是将一些钱存入具有不同用户的单个账户 - 所以在测试结束时我可以检查该账户的钱以查看交易是否成功。)或者我可以发送请求以进行注册对于不同的用户,以及最终创建的帐户的数量,将指定系统响应大量请求的效率。因此,Web服务器对我的计算机的响应并不重要。但如果有可能看到它,很高兴

1 个答案:

答案 0 :(得分:1)

使用Selenium与浏览器进行互动,您可以从this页面开始,也可以阅读docs

下面的代码是selenium的一个简单用法:

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

driver = webdriver.Firefox()
driver.get("http://www.python.org")

试试这个并享受......