python爬虫類の古詩文網における検証コードの識別と登録---サードパーティプラットフォーム
15996 ワード
ターゲットサイト:古詩文網
ターゲットWebサイト:http://so.gushiwen.org/user/collect.aspx
タスク要件:
(1)selenium方式でこのサイトのログインをシミュレートし、ユーザー名とパスワードの入力に成功した.
(2)検証コードピクチャを保存し、入力式検証コード認識方式で検証コードの文字を認識し、取得後に入力ボックスに入力し、
(3)ログインが成功したことを確認する.
OCRライブラリの識別成功率が低いため、ここではスーパーホークコードプラットフォーム(オプションプラットフォームでも可)を利用しています.スーパーイーグルプラットフォームアドレス:http://www.chaojiying.com/ps:アカウントを登録して、マイクロ信号に注目して1000題分を送ります
スーパーホークを接続するコード、詳細は私の別のブログpython検証コードを見て、サードパーティのプラットフォームに接続する方法を識別してください------スーパーホーク
古詩文網の登録コードは以下の通りである:PS:このコードを実行する時、コンピュータの解像度を100%に調整しなければならない.そうしないと、切り取った検証コードの画像にばらつきがある.
ターゲットWebサイト:http://so.gushiwen.org/user/collect.aspx
タスク要件:
(1)selenium方式でこのサイトのログインをシミュレートし、ユーザー名とパスワードの入力に成功した.
(2)検証コードピクチャを保存し、入力式検証コード認識方式で検証コードの文字を認識し、取得後に入力ボックスに入力し、
(3)ログインが成功したことを確認する.
OCRライブラリの識別成功率が低いため、ここではスーパーホークコードプラットフォーム(オプションプラットフォームでも可)を利用しています.スーパーイーグルプラットフォームアドレス:http://www.chaojiying.com/ps:アカウントを登録して、マイクロ信号に注目して1000題分を送ります
スーパーホークを接続するコード、詳細は私の別のブログpython検証コードを見て、サードパーティのプラットフォームに接続する方法を識別してください------スーパーホーク
import requests
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
# todo:
self.password = md5(password.encode("utf-8")).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)
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()
古詩文網の登録コードは以下の通りである:PS:このコードを実行する時、コンピュータの解像度を100%に調整しなければならない.そうしないと、切り取った検証コードの画像にばらつきがある.
from selenium import webdriver
import time
base_url = 'http://so.gushiwen.org/user/collect.aspx'
browser = webdriver.Chrome()
browser.maximize_window()
browser.implicitly_wait(10)
browser.get(base_url)
#
browser.save_screenshot("D:/pic.png")
#
code_ele = browser.find_element_by_css_selector('#imgCode')
print(" :", code_ele.location)
print(" :", code_ele.size)
# 4
x = code_ele.location['x']
y = code_ele.location['y']
right = code_ele.size['width']+x
down = code_ele.size['height']+y
image = Image.open('D:/pic.png')
#
code_image = image.crop((x,y,right,down))
code_image.save('D:/pic1.png')
#
chaojiying = Chaojiying_Client(' ', ' ', '905121')
im = open('D:/pic1.png', 'rb').read()
text = chaojiying.PostPic(im,2004)['pic_str']
print(text)
#
username = browser.find_element_by_css_selector('#email').send_keys(' ')
password = browser.find_element_by_css_selector('#pwd').send_keys(' ')
time.sleep(2)
#
code = browser.find_element_by_css_selector('#code').send_keys(text)
time.sleep(2)
#
submit = browser.find_element_by_css_selector('#denglu')
submit.click()
time.sleep(5)