Я пытаюсь отправить смс с помощью этого by2sms.com.Но я не могу найти контроллер для мобильного телефона отправителя.Это веб-сайт, созданный на основе JavaScript.Есть еще один способ сделать это, как показано в коде way2sms.Мой вопрос, если я использую первый метод (way2sms один), как найти эти URL.
smsurl = 'http://www.160by2.com/smstoss'
data = ssaction = ss & Token =' + session_id + '& toMobile =' + number + '& message =' + message
А если я воспользуюсь вторым Как найти имя поля контроллера?
Другой способ отправки смс с использованием way2sms:
def send(username,password,number,message=''):
#message = "+".join(message.split(' '))
message = message
url = 'http://www.160by2.com/re-login'
data = 'mobileNo='+username+'&password='+password+'&CatType'
#For Cookies:
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
# Adding Header detail:
opener.addheaders = [('User-Agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36')]
try:
socket = opener.open(url, data.encode('utf-8'))
except :
return False
session_id = str(cj).split('~')[1].split(' ')[0]
smsurl = 'http://www.160by2.com/smstoss'
data = 'ssaction=ss&Token='+session_id+'&toMobile='+number+'&message='+message
opener.addheaders = [('Referer', 'http://www.160by2.com/send-sms+'+session_id)]
print(data)
try:
page = opener.open(smsurl,data.encode('utf-8'))
except:
return False
print("SMS sent")
return True
# ====================================================== #
160by2 код:
import mechanize
import cookielib
br=mechanize.Browser()
class sms_client:
"""Basic class accessingg features of 160by2.com"""
def __init__(self):
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
def authenticate_site(self,user,pword):
br.open("http://www.160by2.com")
br.select_form(nr=0)
br.form['username']=user
br.form['password']=pword
res = br.submit()
print("Success!\n")
logincheck = res.read()
#print logincheck
soup = BeautifulSoup(logincheck,"html5lib")
#print(soup)
regex = re.compile('.*.val("");.*')
#t=regex.match(str(soup))
#u = re.findall(r'\#(.*?)\.',str(soup))
#print(u)
#t=re.findall(regex,str(soup))
#print(t)
s = br.geturl()
#Check for Valid password here
if s.find('Login') != -1:
return False #returns false on password error
link = s.split("?")
self.id = link[1]
return True
def open_sendpage(self):
action="SendSMS"
s = self.get_weburl(action)
br.open(s)
br.select_form(nr=0)
def send_sms(self,mobile_no,msg):
self.open_sendpage()
action="SendSMSAction"
s = self.get_weburl(action)
s = 'http://www.160by2.com/Main.action?'+self.id
print(s)
soup = BeautifulSoup(s,"html5lib")
#print(soup)
br.form['hid_msg']=mobile_no #<----- controller doesn't match
br.form['sendSMSMsg']=msg
br.form.action = s
try:
br.submit()
except Exception:
pass #ignore the response exception
def logout(self):
self.open_sendpage()
action="Logout"
s = self.get_weburl(action)
br.form.action = s
br.submit()
def get_weburl(self,action):
weburl = "http://www.160by2.com/" + action + ".action?" + self.id
return weburl
if __name__=="__main__":
pass
client = sms_client()
client.authenticate_site(username,password) # Fill this
client.send_sms(mobileto,msg) # Fill this
client.logout()