文章目錄
第四章 驗證碼識別
實戰:識別古詩文網登錄頁面中的驗證碼,
前言
2021.07.29第四章似乎不是很多,后面幾章好像也不多,
第四章
驗證碼識別
驗證碼和爬蟲之間的關系
反爬機制:驗證碼,識別驗證碼圖片中的資料,用于模擬登陸操作, 識別驗證碼的操作:
人工肉眼識別,(不推薦) 第三方自動識別,(推薦)
云打碼(http://www.yundama.com/demo.html 支持的型別最全) (教程里顯示要花錢,一次識別花幾分錢,咱學的時候url已經失效了) (現在我找到的可以使用的是超級鷹 ) 云打碼的使用流程:(看著玩就行了,個人認為選學內容,因為網站已經進不去了,但是可以做個參考,大體的操作流程都差不多)
1.注冊:普通和開發者用戶(兩個都要注冊) 2.登錄:
普通用戶的登錄:查詢該用戶是否還有剩余的題分 開發者用戶登錄:
<style>#mermaid-svg-bXGSE47UwXg05VkP .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-bXGSE47UwXg05VkP .label text{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .node rect,#mermaid-svg-bXGSE47UwXg05VkP .node circle,#mermaid-svg-bXGSE47UwXg05VkP .node ellipse,#mermaid-svg-bXGSE47UwXg05VkP .node polygon,#mermaid-svg-bXGSE47UwXg05VkP .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-bXGSE47UwXg05VkP .node .label{text-align:center;fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .node.clickable{cursor:pointer}#mermaid-svg-bXGSE47UwXg05VkP .arrowheadPath{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-bXGSE47UwXg05VkP .flowchart-link{stroke:#333;fill:none}#mermaid-svg-bXGSE47UwXg05VkP .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-bXGSE47UwXg05VkP .edgeLabel rect{opacity:0.9}#mermaid-svg-bXGSE47UwXg05VkP .edgeLabel span{color:#333}#mermaid-svg-bXGSE47UwXg05VkP .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-bXGSE47UwXg05VkP .cluster text{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-bXGSE47UwXg05VkP .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-bXGSE47UwXg05VkP text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-bXGSE47UwXg05VkP .actor-line{stroke:grey}#mermaid-svg-bXGSE47UwXg05VkP .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-bXGSE47UwXg05VkP .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-bXGSE47UwXg05VkP #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-bXGSE47UwXg05VkP .sequenceNumber{fill:#fff}#mermaid-svg-bXGSE47UwXg05VkP #sequencenumber{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP #crosshead path{fill:#333;stroke:#333}#mermaid-svg-bXGSE47UwXg05VkP .messageText{fill:#333;stroke:#333}#mermaid-svg-bXGSE47UwXg05VkP .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-bXGSE47UwXg05VkP .labelText,#mermaid-svg-bXGSE47UwXg05VkP .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-bXGSE47UwXg05VkP .loopText,#mermaid-svg-bXGSE47UwXg05VkP .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-bXGSE47UwXg05VkP .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-bXGSE47UwXg05VkP .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-bXGSE47UwXg05VkP .noteText,#mermaid-svg-bXGSE47UwXg05VkP .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-bXGSE47UwXg05VkP .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-bXGSE47UwXg05VkP .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-bXGSE47UwXg05VkP .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-bXGSE47UwXg05VkP .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .section{stroke:none;opacity:0.2}#mermaid-svg-bXGSE47UwXg05VkP .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-bXGSE47UwXg05VkP .section2{fill:#fff400}#mermaid-svg-bXGSE47UwXg05VkP .section1,#mermaid-svg-bXGSE47UwXg05VkP .section3{fill:#fff;opacity:0.2}#mermaid-svg-bXGSE47UwXg05VkP .sectionTitle0{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .sectionTitle1{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .sectionTitle2{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .sectionTitle3{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-bXGSE47UwXg05VkP .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .grid path{stroke-width:0}#mermaid-svg-bXGSE47UwXg05VkP .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-bXGSE47UwXg05VkP .task{stroke-width:2}#mermaid-svg-bXGSE47UwXg05VkP .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .taskText:not([font-size]){font-size:11px}#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-bXGSE47UwXg05VkP .task.clickable{cursor:pointer}#mermaid-svg-bXGSE47UwXg05VkP .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-bXGSE47UwXg05VkP .taskText0,#mermaid-svg-bXGSE47UwXg05VkP .taskText1,#mermaid-svg-bXGSE47UwXg05VkP .taskText2,#mermaid-svg-bXGSE47UwXg05VkP .taskText3{fill:#fff}#mermaid-svg-bXGSE47UwXg05VkP .task0,#mermaid-svg-bXGSE47UwXg05VkP .task1,#mermaid-svg-bXGSE47UwXg05VkP .task2,#mermaid-svg-bXGSE47UwXg05VkP .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutside0,#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutside2{fill:#000}#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutside1,#mermaid-svg-bXGSE47UwXg05VkP .taskTextOutside3{fill:#000}#mermaid-svg-bXGSE47UwXg05VkP .active0,#mermaid-svg-bXGSE47UwXg05VkP .active1,#mermaid-svg-bXGSE47UwXg05VkP .active2,#mermaid-svg-bXGSE47UwXg05VkP .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-bXGSE47UwXg05VkP .activeText0,#mermaid-svg-bXGSE47UwXg05VkP .activeText1,#mermaid-svg-bXGSE47UwXg05VkP .activeText2,#mermaid-svg-bXGSE47UwXg05VkP .activeText3{fill:#000 !important}#mermaid-svg-bXGSE47UwXg05VkP .done0,#mermaid-svg-bXGSE47UwXg05VkP .done1,#mermaid-svg-bXGSE47UwXg05VkP .done2,#mermaid-svg-bXGSE47UwXg05VkP .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-bXGSE47UwXg05VkP .doneText0,#mermaid-svg-bXGSE47UwXg05VkP .doneText1,#mermaid-svg-bXGSE47UwXg05VkP .doneText2,#mermaid-svg-bXGSE47UwXg05VkP .doneText3{fill:#000 !important}#mermaid-svg-bXGSE47UwXg05VkP .crit0,#mermaid-svg-bXGSE47UwXg05VkP .crit1,#mermaid-svg-bXGSE47UwXg05VkP .crit2,#mermaid-svg-bXGSE47UwXg05VkP .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-bXGSE47UwXg05VkP .activeCrit0,#mermaid-svg-bXGSE47UwXg05VkP .activeCrit1,#mermaid-svg-bXGSE47UwXg05VkP .activeCrit2,#mermaid-svg-bXGSE47UwXg05VkP .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-bXGSE47UwXg05VkP .doneCrit0,#mermaid-svg-bXGSE47UwXg05VkP .doneCrit1,#mermaid-svg-bXGSE47UwXg05VkP .doneCrit2,#mermaid-svg-bXGSE47UwXg05VkP .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-bXGSE47UwXg05VkP .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-bXGSE47UwXg05VkP .milestoneText{font-style:italic}#mermaid-svg-bXGSE47UwXg05VkP .doneCritText0,#mermaid-svg-bXGSE47UwXg05VkP .doneCritText1,#mermaid-svg-bXGSE47UwXg05VkP .doneCritText2,#mermaid-svg-bXGSE47UwXg05VkP .doneCritText3{fill:#000 !important}#mermaid-svg-bXGSE47UwXg05VkP .activeCritText0,#mermaid-svg-bXGSE47UwXg05VkP .activeCritText1,#mermaid-svg-bXGSE47UwXg05VkP .activeCritText2,#mermaid-svg-bXGSE47UwXg05VkP .activeCritText3{fill:#000 !important}#mermaid-svg-bXGSE47UwXg05VkP .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-bXGSE47UwXg05VkP g.classGroup text .title{font-weight:bolder}#mermaid-svg-bXGSE47UwXg05VkP g.clickable{cursor:pointer}#mermaid-svg-bXGSE47UwXg05VkP g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-bXGSE47UwXg05VkP g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-bXGSE47UwXg05VkP .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-bXGSE47UwXg05VkP .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-bXGSE47UwXg05VkP .dashed-line{stroke-dasharray:3}#mermaid-svg-bXGSE47UwXg05VkP #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP .commit-id,#mermaid-svg-bXGSE47UwXg05VkP .commit-msg,#mermaid-svg-bXGSE47UwXg05VkP .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-bXGSE47UwXg05VkP g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-bXGSE47UwXg05VkP g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-bXGSE47UwXg05VkP g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-bXGSE47UwXg05VkP .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-bXGSE47UwXg05VkP .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-bXGSE47UwXg05VkP .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-bXGSE47UwXg05VkP .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-bXGSE47UwXg05VkP .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-bXGSE47UwXg05VkP .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-bXGSE47UwXg05VkP .edgeLabel text{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-bXGSE47UwXg05VkP .node circle.state-start{fill:black;stroke:black}#mermaid-svg-bXGSE47UwXg05VkP .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-bXGSE47UwXg05VkP #statediagram-barbEnd{fill:#9370db}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-state .divider{stroke:#9370db}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-bXGSE47UwXg05VkP .note-edge{stroke-dasharray:5}#mermaid-svg-bXGSE47UwXg05VkP .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-bXGSE47UwXg05VkP .error-icon{fill:#522}#mermaid-svg-bXGSE47UwXg05VkP .error-text{fill:#522;stroke:#522}#mermaid-svg-bXGSE47UwXg05VkP .edge-thickness-normal{stroke-width:2px}#mermaid-svg-bXGSE47UwXg05VkP .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-bXGSE47UwXg05VkP .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-bXGSE47UwXg05VkP .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-bXGSE47UwXg05VkP .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-bXGSE47UwXg05VkP .marker{fill:#333}#mermaid-svg-bXGSE47UwXg05VkP .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-bXGSE47UwXg05VkP {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
我的軟體
添加新軟體
錄入軟體名稱
提交/之后會給你軟體id和密鑰
<style>#mermaid-svg-VTHryWu2mqypBXFu .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-VTHryWu2mqypBXFu .label text{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .node rect,#mermaid-svg-VTHryWu2mqypBXFu .node circle,#mermaid-svg-VTHryWu2mqypBXFu .node ellipse,#mermaid-svg-VTHryWu2mqypBXFu .node polygon,#mermaid-svg-VTHryWu2mqypBXFu .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-VTHryWu2mqypBXFu .node .label{text-align:center;fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .node.clickable{cursor:pointer}#mermaid-svg-VTHryWu2mqypBXFu .arrowheadPath{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-VTHryWu2mqypBXFu .flowchart-link{stroke:#333;fill:none}#mermaid-svg-VTHryWu2mqypBXFu .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-VTHryWu2mqypBXFu .edgeLabel rect{opacity:0.9}#mermaid-svg-VTHryWu2mqypBXFu .edgeLabel span{color:#333}#mermaid-svg-VTHryWu2mqypBXFu .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-VTHryWu2mqypBXFu .cluster text{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-VTHryWu2mqypBXFu .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-VTHryWu2mqypBXFu text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-VTHryWu2mqypBXFu .actor-line{stroke:grey}#mermaid-svg-VTHryWu2mqypBXFu .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-VTHryWu2mqypBXFu .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-VTHryWu2mqypBXFu #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-VTHryWu2mqypBXFu .sequenceNumber{fill:#fff}#mermaid-svg-VTHryWu2mqypBXFu #sequencenumber{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu #crosshead path{fill:#333;stroke:#333}#mermaid-svg-VTHryWu2mqypBXFu .messageText{fill:#333;stroke:#333}#mermaid-svg-VTHryWu2mqypBXFu .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-VTHryWu2mqypBXFu .labelText,#mermaid-svg-VTHryWu2mqypBXFu .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-VTHryWu2mqypBXFu .loopText,#mermaid-svg-VTHryWu2mqypBXFu .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-VTHryWu2mqypBXFu .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-VTHryWu2mqypBXFu .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-VTHryWu2mqypBXFu .noteText,#mermaid-svg-VTHryWu2mqypBXFu .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-VTHryWu2mqypBXFu .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-VTHryWu2mqypBXFu .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-VTHryWu2mqypBXFu .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-VTHryWu2mqypBXFu .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .section{stroke:none;opacity:0.2}#mermaid-svg-VTHryWu2mqypBXFu .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-VTHryWu2mqypBXFu .section2{fill:#fff400}#mermaid-svg-VTHryWu2mqypBXFu .section1,#mermaid-svg-VTHryWu2mqypBXFu .section3{fill:#fff;opacity:0.2}#mermaid-svg-VTHryWu2mqypBXFu .sectionTitle0{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .sectionTitle1{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .sectionTitle2{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .sectionTitle3{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-VTHryWu2mqypBXFu .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .grid path{stroke-width:0}#mermaid-svg-VTHryWu2mqypBXFu .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-VTHryWu2mqypBXFu .task{stroke-width:2}#mermaid-svg-VTHryWu2mqypBXFu .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .taskText:not([font-size]){font-size:11px}#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-VTHryWu2mqypBXFu .task.clickable{cursor:pointer}#mermaid-svg-VTHryWu2mqypBXFu .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-VTHryWu2mqypBXFu .taskText0,#mermaid-svg-VTHryWu2mqypBXFu .taskText1,#mermaid-svg-VTHryWu2mqypBXFu .taskText2,#mermaid-svg-VTHryWu2mqypBXFu .taskText3{fill:#fff}#mermaid-svg-VTHryWu2mqypBXFu .task0,#mermaid-svg-VTHryWu2mqypBXFu .task1,#mermaid-svg-VTHryWu2mqypBXFu .task2,#mermaid-svg-VTHryWu2mqypBXFu .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutside0,#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutside2{fill:#000}#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutside1,#mermaid-svg-VTHryWu2mqypBXFu .taskTextOutside3{fill:#000}#mermaid-svg-VTHryWu2mqypBXFu .active0,#mermaid-svg-VTHryWu2mqypBXFu .active1,#mermaid-svg-VTHryWu2mqypBXFu .active2,#mermaid-svg-VTHryWu2mqypBXFu .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-VTHryWu2mqypBXFu .activeText0,#mermaid-svg-VTHryWu2mqypBXFu .activeText1,#mermaid-svg-VTHryWu2mqypBXFu .activeText2,#mermaid-svg-VTHryWu2mqypBXFu .activeText3{fill:#000 !important}#mermaid-svg-VTHryWu2mqypBXFu .done0,#mermaid-svg-VTHryWu2mqypBXFu .done1,#mermaid-svg-VTHryWu2mqypBXFu .done2,#mermaid-svg-VTHryWu2mqypBXFu .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-VTHryWu2mqypBXFu .doneText0,#mermaid-svg-VTHryWu2mqypBXFu .doneText1,#mermaid-svg-VTHryWu2mqypBXFu .doneText2,#mermaid-svg-VTHryWu2mqypBXFu .doneText3{fill:#000 !important}#mermaid-svg-VTHryWu2mqypBXFu .crit0,#mermaid-svg-VTHryWu2mqypBXFu .crit1,#mermaid-svg-VTHryWu2mqypBXFu .crit2,#mermaid-svg-VTHryWu2mqypBXFu .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-VTHryWu2mqypBXFu .activeCrit0,#mermaid-svg-VTHryWu2mqypBXFu .activeCrit1,#mermaid-svg-VTHryWu2mqypBXFu .activeCrit2,#mermaid-svg-VTHryWu2mqypBXFu .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-VTHryWu2mqypBXFu .doneCrit0,#mermaid-svg-VTHryWu2mqypBXFu .doneCrit1,#mermaid-svg-VTHryWu2mqypBXFu .doneCrit2,#mermaid-svg-VTHryWu2mqypBXFu .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-VTHryWu2mqypBXFu .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-VTHryWu2mqypBXFu .milestoneText{font-style:italic}#mermaid-svg-VTHryWu2mqypBXFu .doneCritText0,#mermaid-svg-VTHryWu2mqypBXFu .doneCritText1,#mermaid-svg-VTHryWu2mqypBXFu .doneCritText2,#mermaid-svg-VTHryWu2mqypBXFu .doneCritText3{fill:#000 !important}#mermaid-svg-VTHryWu2mqypBXFu .activeCritText0,#mermaid-svg-VTHryWu2mqypBXFu .activeCritText1,#mermaid-svg-VTHryWu2mqypBXFu .activeCritText2,#mermaid-svg-VTHryWu2mqypBXFu .activeCritText3{fill:#000 !important}#mermaid-svg-VTHryWu2mqypBXFu .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-VTHryWu2mqypBXFu g.classGroup text .title{font-weight:bolder}#mermaid-svg-VTHryWu2mqypBXFu g.clickable{cursor:pointer}#mermaid-svg-VTHryWu2mqypBXFu g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-VTHryWu2mqypBXFu g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-VTHryWu2mqypBXFu .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-VTHryWu2mqypBXFu .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-VTHryWu2mqypBXFu .dashed-line{stroke-dasharray:3}#mermaid-svg-VTHryWu2mqypBXFu #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu .commit-id,#mermaid-svg-VTHryWu2mqypBXFu .commit-msg,#mermaid-svg-VTHryWu2mqypBXFu .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-VTHryWu2mqypBXFu g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-VTHryWu2mqypBXFu g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-VTHryWu2mqypBXFu g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-VTHryWu2mqypBXFu .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-VTHryWu2mqypBXFu .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-VTHryWu2mqypBXFu .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-VTHryWu2mqypBXFu .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-VTHryWu2mqypBXFu .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-VTHryWu2mqypBXFu .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-VTHryWu2mqypBXFu .edgeLabel text{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-VTHryWu2mqypBXFu .node circle.state-start{fill:black;stroke:black}#mermaid-svg-VTHryWu2mqypBXFu .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-VTHryWu2mqypBXFu #statediagram-barbEnd{fill:#9370db}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-state .divider{stroke:#9370db}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-VTHryWu2mqypBXFu .note-edge{stroke-dasharray:5}#mermaid-svg-VTHryWu2mqypBXFu .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-VTHryWu2mqypBXFu .error-icon{fill:#522}#mermaid-svg-VTHryWu2mqypBXFu .error-text{fill:#522;stroke:#522}#mermaid-svg-VTHryWu2mqypBXFu .edge-thickness-normal{stroke-width:2px}#mermaid-svg-VTHryWu2mqypBXFu .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-VTHryWu2mqypBXFu .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-VTHryWu2mqypBXFu .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-VTHryWu2mqypBXFu .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-VTHryWu2mqypBXFu .marker{fill:#333}#mermaid-svg-VTHryWu2mqypBXFu .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-VTHryWu2mqypBXFu {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
開發檔案
點此下載:云打碼介面DLL
PythonHTTP示例下載
備注:如果使用超級鷹的話暫時不用充錢,先關注公眾號然后再系結微信就能獲得1000題分,標準的4位英文數字驗證碼識別成功只花費10題分,1000題分用來練練手已經足夠了,
實戰:識別古詩文網登錄頁面中的驗證碼,
使用打碼平臺識別驗證碼的編碼流程:
將驗證碼圖片進行本地下載 呼叫平臺提供的示例代碼進行圖片資料識別
練習代碼如下:
import requests
from lxml import html
etree = html. etree
from hashlib import md5
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)
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__' :
# 將驗證碼圖片下載到本地
url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
page_text = requests. get( url= url, headers= headers) . text
# 決議驗證碼圖片img中src屬性值
tree = etree. HTML( page_text)
code_img_src = 'https://so.gushiwen.cn' + tree. xpath( '//*[@id="imgCode"]/@src' ) [ 0 ]
img_data = requests. get( url= code_img_src, headers= headers) . content
# 將驗證碼圖片保存到本地
with open ( './code.jpg' , 'wb' ) as fp:
fp. write( img_data)
# 呼叫打碼平臺的示例程式進行驗證碼圖片資料識別
chaojiying = Chaojiying_Client( '你的賬號qwq' , '你的密碼(不給你咱的)' , '96001' )
# 用戶中心>>軟體ID 生成一個替換 96001
im = open ( 'code.jpg' , 'rb' ) . read( )
# 本地圖片檔案路徑 來替換 a.jpg 有時WIN系統須要//
print ( chaojiying. PostPic( im, 1902 ) )
# 1902 驗證碼型別 官方網站>>價格體系 3.4+版 print 后要加()