是否可以使用selenium webdriver向服务器发送多个HTTP POST请求?
例如,如果用户ID是自动递增的,前1000名粉丝跟随我,是否可以在POST请求不返回重新加载的站点上运行类似下面的内容:
**网站显然要求用户登录以执行此类操作,因此采用硒方式。
driver = webdriver.Firefox()
driver.get("http://example.com/myfollowers")
for userid in range(1, 1001):
driver.post("http://example.com/unfollow/{}".format(userid))
driver.close()
以下是对网站发布的Post请求的代码段示例。
General:
Request URL:http://example.com/unfollow/1
Request Method:POST
Status Code:200 OK
Remote Address:192.168.1.1:80
Response Headers
Request headers:
Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:0
Cookie:ob-i=1;
Host:example.com
Origin:http://example.com
Referer:http://example.com/user/followings
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.26.02 Safari/537.36
X-Requested-With:XMLHttpRequest
答案 0 :(得分:0)
不知道如何使用selenium web驱动程序。但您可以使用AJAX发送多个帖子请求。它非常简单的语言,你可以在2天内学习它,如果你知道一点点javascript。你可以从w3schools学习它尝试一下。
答案 1 :(得分:0)
为什么它不起作用?
" POST请求不会返回重新加载"请解释一下你的意思!
无论如何,requests
似乎更适合这项任务:
这是一个简单的例子:
validate :one_vote_per_question
#self is in the 'vote' context so assuming you followed standard rails practices:
def one_vote_per_question
if Vote.where("voter_id = ? AND question_id = ?", self.voter.id, self.choice.question.id).exists?
errors.add(:vote, "You have already voted on this question")
end
end