爬取的目標**,是乙個古詩文**
雲達碼是一款打碼平台,
雲達碼使用流程
對了!還有一點就是,再登入的時候一定要建立會話,否則**寫的再no problem**!都是?單,一定要攜帶cookie
去訪問,
# -*- coding = utf-8 -*-
#@time :2020/5/18 13:39
#author :song
#@file 古詩文網驗證碼識別.py
#@software: pycharm
import requests
from fake_useragent import useragent
from lxml import etree
from webspider.day18.verification_code import get_code
defindexhtml
(s):
url =
""r =s.get(url=url,headers=
)return r.text
defdownload_image
(html,s)
: tree = etree.html(html)
#獲取驗證碼
image_src =tree.xpath(
'//*[@id="imgcode"]/@src')[
0]#拼接完整的image url
image_url =
""+ image_src
r =s.get(url=image_url,headers=
)with
open
("yzm.png"
,"wb"
)as fp:
fp.write(r.content)
code =get_code(
"yzm.png"
,1004
)print
(code)
# print(code)
#指令解析
viewstate = __viewstate = tree.xpath(
'//*[@id="aspnetform"]/div[1]/input/@value')[
0]viewstategenerator = __viewstategenerator =tree.xpath(
'//*[@id="aspnetform"]/div[2]/input/@value')[
0]# print(viewstategenerator)
# print(viewstate)
return code,viewstate,viewstategenerator
deflogin
(code,viewstate,viewstategenerator,s)
: post_url=
""formdata=
r =s.post(url=post_url,headers=
,data=formdata)
# print(r.text)
with
open
("gs.html"
,"w"
,encoding=
"utf8"
)as fp:
fp.write(r.text)
defmain()
:#建立會話,來進行登入
s =requests.session(
) html = indexhtml(s)
code,viewstate,viewstategenerator = download_image(html,s)
#登入 login(code,viewstate,viewstategenerator,s)
if __name__ ==
'__main__'
: main(
)
驗證碼破解
驗證碼的功能一般是防止使用程式惡意註冊 暴力破解或批量發帖而設定的。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,裡加上一些干擾象素 防止ocr 由使用者肉眼識別其中的驗證碼資訊,輸入表單提交 驗證,驗證成功後才能使用某項功能。學習驗證碼的破解 識別技術,不僅可以知道驗證碼的原理,而且可以讓...
驗證碼破解
目錄1xx 訊息,一般是告訴客戶端,請求已經收到了,正在處理,別急.2xx 處理成功,一般表示 請求收悉 我明白你要的 請求已受理 已經處理完成等資訊.3xx 重定向到其它地方。它讓客戶端再發起乙個請求以完成整個處理。4xx 處理發生錯誤,責任在客戶端,如客戶端的請求乙個不存在的資源,客戶端未被授權...
利用canvas破解簡單驗證碼
敝校的教務管理系統 貌似不止我們學校用呢 一到選課時間伺服器各種崩不解釋,有時為了選個課就要反覆輸入驗證碼,一想到千千萬萬的大學生把時間浪費在輸入驗證碼上面,我就覺得,我有義務拯救一下人類。搜了一下,看到這篇文章,3年前的文章了。我參考了前半部分,借助tampermonkey這個外掛程式,大概實現了...