超级鹰的代码
#!/usr/bin/env python
# coding:utf-8
import requests
from hashlib import md5
import json
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
password = password.encode('utf8')
self.password = md5(password).hexdigest()
self.soft_id = soft_id
self.base_params = {
'user': self.username,
'pass2': self.password,
'softid': self.soft_id
}
self.headers = {
'Connection': 'Keep-Alive',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)'
}
def PostPic(self, im, codetype):
"""
im: 图片字节
codetype: 题目类型 参考 http://www.chaojiying.com/price.html
"""
params = {
'codetype': codetype
}
params.update(self.base_params)
files = {
'userfile': ('ccc.jpg', im)
}
r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
#mes = json.loads(r,strict = False)
return r.json()
def ReportError(self, im_id):
"""
im_id:报错题目的图片ID
"""
params = {
'id': im_id
}
params.update(self.base_params)
r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
return r.json()
if __name__ == '__main__':
chaojiying = Chaojiying_Client('用户名', '密码', '922153') #用户中心>>软件ID 生成一个替换 96001
im = open('yzm.jpg', 'rb').read() #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print (chaojiying.PostPic(im, 1902)) #1902 验证码类型 官方网站>>价格体系 3.4+版 print 后要加()
登录
from selenium.webdriver import Chrome
import time
from chaojiying import Chaojiying_Client
driver = Chrome()
driver.get("https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx")
img = driver.find_element_by_xpath('/html/body/form[1]/div[4]/div[4]/img').screenshot_as_png
chaojiying = Chaojiying_Client('用户名', '密码', '922153')
dic = chaojiying.PostPic(img, 1902)
verify_code = dic['pic_str']
print(verify_code)
#driver.find_element_by_xpath("/html/body/form[1]/div[4]/div[2]/input[2]").send_keys("用户名")
#driver.find_element_by_xpath("/html/body/form[1]/div[4]/div[3]/input").send_keys("密码")
#driver.find_element_by_xpath("/html/body/form[1]/div[4]/div[4]/input").send_keys(verify)
#time.sleep(2)
#driver.find_element_by_xpath("/html/body/form[1]/div[4]/div[6]/input").click()
运行到
driver.find_element_by_xpath('/html/body/form[1]/div[4]/div[4]/img').screenshot_as_png
他会报错
C:\Users\pc\AppData\Local\Programs\Python\Python35\python.exe E:/pypc/example1/验证码/易安联验证.py
Traceback (most recent call last):
File "E:/pypc/example1/验证码/易安联验证.py", line 10, in <module>
img = driver.find_element_by_xpath('/html/body/form[1]/div[4]/div[4]/img').screenshot_as_png
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 392, in screenshot_as_png
return base64.b64decode(self.screenshot_as_base64.encode('ascii'))
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 382, in screenshot_as_base64
return self._execute(Command.ELEMENT_SCREENSHOT)['value']
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 454, in _execute
return self._parent.execute(command, params)
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute
self.error_handler.check_response(response)
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 102, in check_response
value = json.loads(value_json)
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\json\__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
求解决办法