自动评论功能,python脚本不能自动提交的问题
greex 2016-09-25 09:48:05 那位大牛看看原因:(使用前要先手工登录进去,之后希望每隔一定时间自动提交一次)
错误:验证码有时错误,这个另在处理中。这里问下当验证码成功时也不能成功提交,网站返回的提示信息总不固定。何解?
python 原代码如下:
#!/usr/bin/py2
# -*- coding: utf-8 -*-
#encoding=utf-8
import os,time
import urllib
import random
import ctypes
import pytesser
import pytesseract
from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
def random_without_same(mi, ma):
return random.randint(mi,ma-1)
def getImageFlag(tmpIm):
im =Image.open(tmpIm)
l=146
t=2471
r=l+42
d=t+14
box = (l,t,r,d) #设置要裁剪的区域
region = im.crop(box) #此时,region是一个新的图像对象。
#region.show()#显示的话就会被占用,所以要注释掉
text=pytesseract.image_to_string(region)
text=text.replace(' ','')
return text
def getUser():
return "test"
def getMsg():
return "test"
def main(url):
urlObj = webdriver.Firefox()
urlObj.get(url)
time.sleep(40) #40
num=2000
while num>0:
num=num-1
try:
urlObj.get(url)
time.sleep(2)
urlObj.find_element_by_id('price'+str(random_without_same(1,4))).click()
urlObj.find_element_by_id('service'+str(random_without_same(1,3))).click()
urlObj.find_element_by_id('env'+str(random_without_same(1,3))).click()
urlObj.find_element_by_id('coach'+str(random_without_same(1,3))).click()
elem=urlObj.find_element_by_name('account')
elem.clear()
elem.send_keys(getUser())
elem=urlObj.find_element_by_name('content_dianping')
elem.clear()
elem.send_keys(getMsg())
localPath = "my.jpg"
#os.remove(localPath)
urlObj.get_screenshot_as_file(localPath)
txt=getImageFlag(localPath)
elem=urlObj.find_element_by_id('adminid')
elem.clear()
elem.send_keys(txt)#input("yzm:")
urlObj.find_element_by_id('dpsub').click()
urlObj.switch_to_alert().accept()
urlObj.switch_to_alert().accept()
except:
print ('error.')
if num!=0:
time.sleep(350) #350
#ctypes.windll.user32.MessageBoxA(0, 'read', 'hi', 0)
urlObj.close()
urlObj.quit()
if __name__ == '__main__':
main('http://jiaxiao.jxedt.com/43/dianping/')