摘要:登錄開發者后臺我的軟件獲得軟件軟件密鑰注意這里是普通會員賬號,不是開發者賬號,注冊地址開發者可以聯系客服領取免費調試題分請先設置用戶名密碼一鍵識別函數正在一鍵識別例表示位字母數字,不同類型收費不同。請準確填寫,否則影響識別率。
打碼接口文件
# -*- coding: cp936 -*- import sys import os from ctypes import * # 下載接口放目錄 http://www.yundama.com/apidoc/YDM_SDK.html # 錯誤代碼請查詢 http://www.yundama.com/apidoc/YDM_ErrorCode.html # 所有函數請查詢 http://www.yundama.com/apidoc print(">>>正在初始化...") YDMApi = windll.LoadLibrary("H:/py/16/adc/adc/yamzhm/yundamaAPI-x64") # 1. http://www.yundama.com/index/reg/developer 注冊開發者賬號 # 2. http://www.yundama.com/developer/myapp 添加新軟件 # 3. 使用添加的軟件ID和密鑰進行開發,享受豐厚分成 appId = 3818 # 軟件ID,開發者分成必要參數。登錄開發者后臺【我的軟件】獲得! appKey = b"6ff56e09e89fffe45c14abe624af9456" # 軟件密鑰,開發者分成必要參數。登錄開發者后臺【我的軟件】獲得! # print("軟件ID:%d 軟件密鑰:%s" % (appId, appKey)) # 注意這里是普通會員賬號,不是開發者賬號,注冊地址 http://www.yundama.com/index/reg/user # 開發者可以聯系客服領取免費調試題分 username = b"adc8868" password = b"adc279819" if username == b"test": exit(" >>>請先設置用戶名密碼") ####################### 一鍵識別函數 YDM_EasyDecodeByPath ####################### # print(" >>>正在一鍵識別...") # # # 例:1004表示4位字母數字,不同類型收費不同。請準確填寫,否則影響識別率。在此查詢所有類型 http://www.yundama.com/price.html # codetype = 1004 # # # 分配30個字節存放識別結果 # result = c_char_p(b" ") # # # 識別超時時間 單位:秒 # timeout = 60 # # # 驗證碼文件路徑 # filename = b"H:/py/16/adc/adc/yamzhm/yan_zhe_nma.jpg" # # # 一鍵識別函數,無需調用 YDM_SetAppInfo 和 YDM_Login,適合腳本調用 # captchaId = YDMApi.YDM_EasyDecodeByPath(username, password, appId, appKey, filename, codetype, timeout, result) # # print("一鍵識別:驗證碼ID:%d,識別結果:%s" % (captchaId, result.value)) ################################################################################ ########################## 普通識別函數 YDM_DecodeByPath ######################### # print(" >>>正在登陸...") # 第一步:初始化云打碼,只需調用一次即可 YDMApi.YDM_SetAppInfo(appId, appKey) # 第二步:登陸云打碼賬號,只需調用一次即可 uid = YDMApi.YDM_Login(username, password) if uid > 0: # print(">>>正在獲取余額...") # 查詢賬號余額,按需要調用 balance = YDMApi.YDM_GetBalance(username, password) print("登陸成功,用戶名:%s,剩余題分:%d" % (username, balance)) print(" >>>正在普通識別...") # 第三步:開始識別 # 例:1004表示4位字母數字,不同類型收費不同。請準確填寫,否則影響識別率。在此查詢所有類型 http://www.yundama.com/price.html codetype = 3000 # 分配30個字節存放識別結果 result = c_char_p(b" ") # 驗證碼文件路徑 filename = b"H:/py/16/adc/adc/yamzhm/yan_zhe_nma.jpg" # 普通識別函數,需先調用 YDM_SetAppInfo 和 YDM_Login 初始化 captchaId = YDMApi.YDM_DecodeByPath(filename, codetype, result) print("普通識別:驗證碼ID:%d,識別結果:%s" % (captchaId, result.value)) else: print("登陸失敗,錯誤代碼:%d" % uid) ################################################################################ # print(" >>>錯誤代碼請查詢 http://www.yundama.com/apidoc/YDM_ErrorCode.html") # input(" 測試完成,按回車鍵結束...")
實現文件
# -*- coding: utf-8 -*- import os from urllib import request #導入request模塊 import scrapy from scrapy.http import Request,FormRequest class PachSpider(scrapy.Spider): #定義爬蟲類,必須繼承scrapy.Spider name = "pach" #設置爬蟲名稱 allowed_domains = ["douban.com"] #爬取域名 # start_urls = [""] #爬取網址,只適于不需要登錄的請求,因為沒法設置cookie等信息 header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"} #設置瀏覽器用戶代理 def start_requests(self): """第一次請求一下登錄頁面,設置開啟cookie使其得到cookie,設置回調函數""" print("第一次請求頁面獲取Cookies.........!") return [Request("https://accounts.douban.com/login",meta={"cookiejar":1},callback=self.parse,headers=self.header)] def parse(self, response): # 響應Cookies Cookie1 = response.headers.getlist("Set-Cookie") #查看一下響應Cookie,也就是第一次訪問注冊頁面時后臺寫入瀏覽器的Cookie print("后臺首次寫入的響應Cookies:",Cookie1) #判斷是否出現驗證碼 yzhm = response.xpath("http://img[@id="captcha_image"]/@src").extract() if len(yzhm) > 0: print("出現驗證碼,請輸入驗證碼") print("驗證碼圖片地址:",yzhm) #將驗證碼圖片保存到本地 file_path = os.path.join(os.getcwd() + "/adc/yamzhm/yan_zhe_nma.jpg") # 拼接圖片保存路徑 print(file_path) request.urlretrieve(yzhm[0], file_path) # 將圖片保存到本地,參數1獲取到的src,參數2保存路徑 #使用在線打碼,自動識別驗證碼 from adc.yamzhm import YDMPython3 #導入打碼模塊 yan_zhen_ma = str(YDMPython3.result.value,encoding="utf-8") #接收打碼結果 print("寫入驗證碼",yan_zhen_ma) data = { # 設置用戶登錄信息,對應抓包得到字段 "source": "None", "redir": "https://www.douban.com/people/81309370/", "form_email": "729088188@qq.com", "form_password": "adc279819", "login": "登錄", "captcha-solution": yan_zhen_ma } print("第二次post請求攜帶Cookies授權,登錄中........!") """第二次用表單post請求,攜帶Cookie、瀏覽器代理、用戶登錄信息,進行登錄給Cookie授權""" return [FormRequest.from_response(response, url="https://accounts.douban.com/login", #真實post地址 meta={"cookiejar":response.meta["cookiejar"]}, headers=self.header, formdata=data, callback=self.next, )] else: data = { # 設置用戶登錄信息,對應抓包得到字段 "source": "None", "redir": "https://www.douban.com/people/81309370/", "form_email": "729088188@qq.com", "form_password": "adc279819", "login": "登錄", } print("第二次post請求攜帶Cookies授權,登錄中........!") """第二次用表單post請求,攜帶Cookie、瀏覽器代理、用戶登錄信息,進行登錄給Cookie授權""" return [FormRequest.from_response(response, url="https://accounts.douban.com/login", # 真實post地址 meta={"cookiejar": response.meta["cookiejar"]}, headers=self.header, formdata=data, callback=self.next, )] def next(self,response): # 請求Cookie Cookie2 = response.request.headers.getlist("Cookie") print("登錄時攜帶請求的Cookies:",Cookie2) dlujieg = response.xpath("/html/head/title/text()").extract() if dlujieg: print("登錄響應結果:",dlujieg) else: jieg = response.body.decode("utf-8") #登錄后可以查看一下登錄響應信息 print("登錄響應結果:",jieg) print("第三次請求攜帶授權Cookie,請求需要登錄才能查看的頁面.........!") yield Request("https://www.douban.com/people/81309370/",meta={"cookiejar":True},headers=self.header,callback=self.next2) def next2(self,response): # 請求Cookie Cookie3 = response.request.headers.getlist("Cookie") print("查看需要登錄才可以訪問的頁面攜帶Cookies:",Cookie3) leir = response.xpath("/html/head/title/text()").extract() #得到個人中心頁面 print("最終內容",leir) # leir2 = response.xpath("http://div[@class="set-tags"]/a/text()").extract() # 得到個人中心頁面 # print(leir2)
【轉載自:http://www.lqkweb.com】
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45067.html
摘要:概述在前面兩篇爬蟲學習之基于的網絡爬蟲和爬蟲學習之簡單的網絡爬蟲文章中我們通過兩個實際的案例,采用不同的方式進行了內容提取。 概述 在前面兩篇(爬蟲學習之基于Scrapy的網絡爬蟲和爬蟲學習之簡單的網絡爬蟲)文章中我們通過兩個實際的案例,采用不同的方式進行了內容提取。我們對網絡爬蟲有了一個比較初級的認識,只要發起請求獲取響應的網頁內容,然后對內容進行格式化存儲。很多時候我們抓取到的內容...
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...
摘要:楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數據提供網站數據采集和爬蟲軟件定制開發服務,服務范圍涵蓋社交網絡電子商務分類信息學術研究等。 楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...
摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
閱讀 797·2023-04-25 22:57
閱讀 3051·2021-11-23 10:03
閱讀 613·2021-11-22 15:24
閱讀 3156·2021-11-02 14:47
閱讀 2901·2021-09-10 11:23
閱讀 3115·2021-09-06 15:00
閱讀 3936·2019-08-30 15:56
閱讀 3322·2019-08-30 15:52