国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

14、web爬蟲講解2—Scrapy框架爬蟲—豆瓣登錄與利用打碼接口實現自動識別驗證碼

wemall / 1529人閱讀

摘要:登錄開發者后臺我的軟件獲得軟件軟件密鑰注意這里是普通會員賬號,不是開發者賬號,注冊地址開發者可以聯系客服領取免費調試題分請先設置用戶名密碼一鍵識別函數正在一鍵識別例表示位字母數字,不同類型收費不同。請準確填寫,否則影響識別率。

【百度云搜索:http://www.bdyss.cn】
【搜網盤:http://www.swpan.cn】

打碼接口文件

# -*- 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

相關文章

  • 網絡爬蟲介紹

    摘要:什么是爬蟲網絡爬蟲也叫網絡蜘蛛,是一種自動化瀏覽網絡的程序,或者說是一種網絡機器人。 什么是爬蟲 網絡爬蟲也叫網絡蜘蛛,是一種自動化瀏覽網絡的程序,或者說是一種網絡機器人。它們被廣泛用于互聯網搜索引擎或其他類似網站,以獲取或更新這些網站的內容和檢索方式。它們可以自動采集所有其能夠訪問到的頁面內容,以供搜索引擎做進一步處理(分檢整理下載的頁面),而使得用戶能更快的檢索到他們需要的信息。簡...

    sf190404 評論0 收藏0
  • 爬蟲學習之基于 Scrapy爬蟲自動登錄

    摘要:概述在前面兩篇爬蟲學習之基于的網絡爬蟲和爬蟲學習之簡單的網絡爬蟲文章中我們通過兩個實際的案例,采用不同的方式進行了內容提取。 概述 在前面兩篇(爬蟲學習之基于Scrapy的網絡爬蟲和爬蟲學習之簡單的網絡爬蟲)文章中我們通過兩個實際的案例,采用不同的方式進行了內容提取。我們對網絡爬蟲有了一個比較初級的認識,只要發起請求獲取響應的網頁內容,然后對內容進行格式化存儲。很多時候我們抓取到的內容...

    Panda 評論0 收藏0
  • Python爬蟲學習路線

    摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...

    liaoyg8023 評論0 收藏0
  • 零基礎如何學爬蟲技術

    摘要:楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數據提供網站數據采集和爬蟲軟件定制開發服務,服務范圍涵蓋社交網絡電子商務分類信息學術研究等。 楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<