代码拉取完成,页面将自动刷新
使用Selenium注册并登录中国知网并识别知网的图形验证码。
识别验证码 - 常见四位英文数字混合验证码
1. Selenium - 建议使用低版本的Python-Selenium库,因为高版本在Chrome中不支持。
pip3 install selenium==2.48.0
2. chromedriver.exe - download_addr:http://npm.taobao.org/mirrors/chromedriver/
3. Chaojiying_Python.rar - download_addr:http://www.chaojiying.com/download/Chaojiying_Python.rar
知网注册页的验证码类型属于常见四位英文和数字组成的验证码。可以在超级鹰的 验证码类型于价格表 页面参考。
这两个三方库识别精度均较差, 字体略微差异可能就不是正常结果。所以选择超级鹰识别,识别前可做灰度、二值化处理(我这里做了注释选择不用,感觉平台打码精度挺高的),代码如下:
def handle_code(image):
"""
处理验证码
:param image: Image对象
:return:
"""
# 灰度处理
image = image.convert("L")
# 阈值120(可灵活配置)
threshold = 120
table = []
for i in range(256): #
if i < threshold:
table.append(0)
else:
table.append(1)
# 二值化处理
image = image.point(table, '1')
# 使用tesserocr获取处理结果
result_1 = tesserocr.image_to_text(image).strip()
# 使用pytesseract获取处理结果
result_2 = pytesseract.image_to_string(image).strip()
# print('验证码为:', result)
# 两者识别结果相同再继续程序,否则循环识别。但是代价很大,所以弃用。
return result_1, result_2
代码可继续扩展,例如:登录后知网文献的爬取,并做数据可视化分析等。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。