Python模拟post提交表单数据
——某二手车网站回拨电话的分析与利用
在浏览某二手车网站的时候,发现可以提交手机号码,然后网站就会回拨给这个手机号,利用这个功能,可以实现一些目的。Python语言可以很便捷的实现这一想法。
Python在提交表单时利用到如下方法:
import urllib urllib2
url=” ” #所要请求数据的url
parameters={ } #参数形式 : “name” : “value”,参数多余一个用,相隔
data=urllib.urlencode(parameters)
request=urllib2.Request(url,data)
response=request.urlopen(request)
对于提交的post表单数据,我们需要知道的是URL和parameters,下面我们就分两步来实现,第一步是分析URL和parameter,第二步是代码实现。
分析URL和parameter
1.打开某二手车网站(https://www.guazi.com/ask/)
同时打开chrome浏览器的开发者工具
点击免费通话,这时候可以看到右侧开发者工具里面出现了网页信息,接着我们填入的手机号就会收到一个该网站的回拨电话,可以先拿自己的手机号码试验一下。
其中?act=callPhone显然就是和提交的电话号码有关,Initiator就是这个提交操作的源文件代码。我们先点击打开?act=callPhone,看看网站提交、响应的都是什么信息:
熟悉get/post请求的话,应该对上面的信息不陌生。其中general中的地址就是提交手机号码的请求地址,类型为POST,所以我们要看看都提交了什么表单数据(就是后面的Form Data)。
Form Data包含以下几个要提交的要素:
1. token: a98774ae5caa2446290dcc376de4c8e4
2. phone: 133****6812
3. puid: 0
显然phone就是我们刚才提交的手机号码,那么token和puid的值是怎么产生的