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

資訊專欄INFORMATION COLUMN

22、Python快速開發(fā)分布式搜索引擎Scrapy精講—scrapy模擬登陸和知乎倒立文字驗(yàn)證碼識(shí)

array_huang / 944人閱讀

【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】

第一步。首先下載,大神者也的倒立文字驗(yàn)證碼識(shí)別程序

下載地址:https://github.com/muchrooms/...

注意:此程序依賴以下模塊包

  Keras==2.0.1
  Pillow==3.4.2
  jupyter==1.0.0
  matplotlib==1.5.3
  numpy==1.12.1
  scikit-learn==0.18.1
  tensorflow==1.0.1
  h5py==2.6.0

numpy-1.13.1+mkl

我們用豆瓣園來加速安以上依賴裝如:

pip?install?-i?https://pypi.douban.com/simple?h5py==2.6.0

如果是win系統(tǒng),可能存在安裝失敗的可能,如果那個(gè)包安裝失敗,就到 http://www.lfd.uci.edu/~gohlk... ?找到win對應(yīng)的版本下載到本地安裝,如:

pip?install?h5py-2.7.0-cp35-cp35m-win_amd64.whl

第二步,將者也的,驗(yàn)證碼識(shí)別程序的zheye文件夾放到工程目錄里

第三步,爬蟲實(shí)現(xiàn)

start_requests()方法,起始url函數(shù),會(huì)替換start_urls

Request()方法,get方式請求網(wǎng)頁
  url=字符串類型url
  headers=字典類型瀏覽器代理
  meta=字典類型的數(shù)據(jù),會(huì)傳遞給回調(diào)函數(shù)
  callback=回調(diào)函數(shù)名稱

scrapy.FormRequest()post方式提交數(shù)據(jù)
  url=字符串類型url
  headers=字典類型瀏覽器代理
  meta=字典類型的數(shù)據(jù),會(huì)傳遞給回調(diào)函數(shù)
  callback=回調(diào)函數(shù)名稱
  formdata=字典類型,要提交的數(shù)據(jù)字段

response.headers.getlist("Set-Cookie")?獲取響應(yīng)Cookies
response.request.headers.getlist("Cookie")?獲取請求Cookies

#?-*-?coding:?utf-8?-*-
import?scrapy
from?scrapy.http?import?Request,FormRequest
import?re

class?PachSpider(scrapy.Spider):????????????????????????????#定義爬蟲類,必須繼承scrapy.Spider
????name?=?"pach"???????????????????????????????????????????#設(shè)置爬蟲名稱
????allowed_domains?=?["zhihu.com"]????????????????????#爬取域名
????#?start_urls?=?[""]?????????????????????????????????????#爬取網(wǎng)址,只適于不需要登錄的請求,因?yàn)闆]法設(shè)置cookie等信息

????header?=?{"User-Agent":"Mozilla/5.0?(Windows?NT?10.0;?WOW64;?rv:54.0)?Gecko/20100101?Firefox/54.0"}??#設(shè)置瀏覽器用戶代理

????def?start_requests(self):????#起始url函數(shù),會(huì)替換start_urls
????????"""第一次請求一下登錄頁面,設(shè)置開啟cookie使其得到cookie,設(shè)置回調(diào)函數(shù)"""
????????return?[Request(
????????????url="https://www.zhihu.com/#signin",
????????????headers=self.header,
????????????meta={"cookiejar":1},???????#開啟Cookies記錄,將Cookies傳給回調(diào)函數(shù)
????????????callback=self.parse
????????)]

????def?parse(self,?response):
????????#?響應(yīng)Cookies
????????Cookie1?=?response.headers.getlist("Set-Cookie")????????????????????????????#查看一下響應(yīng)Cookie,也就是第一次訪問注冊頁面時(shí)后臺(tái)寫入瀏覽器的Cookie
????????print("后臺(tái)首次寫入的響應(yīng)Cookies:",Cookie1)

????????#獲取xsrf密串
????????xsrf?=?response.xpath("http://input[@name="_xsrf"]/@value").extract()[0]
????????print("獲取xsrf密串:"?+?xsrf)

????????#獲取驗(yàn)證碼?????????
????????import?time?????????
????????t?=?str(int(time.time()*1000))?????????
????????captcha_url?=?"https://www.zhihu.com/captcha.gif?r={0}&type=login&lang=cn".format(t)???#構(gòu)造驗(yàn)證碼請求地址
????????yield?Request(url=captcha_url,?????????????????????????????????????????????????????????#請求驗(yàn)證碼圖片
??????????????????????headers=self.header,
??????????????????????meta={"cookiejar":response.meta["cookiejar"],"xsrf":xsrf},???????????????#將Cookies和xsrf密串傳給回調(diào)函數(shù)
??????????????????????callback=self.post_tj
??????????????????????)

????def?post_tj(self,?response):
????????with?open("yzhm.jpg","wb")?as?f:????????#打開圖片句柄
????????????f.write(response.body)??????????????#將驗(yàn)證碼圖片寫入本地
????????????f.close()???????????????????????????#關(guān)閉句柄

#---------------------------者也驗(yàn)證碼識(shí)別-----------------------

????????from?zheye?import?zheye?????????????????#導(dǎo)入者也倒立文字驗(yàn)證碼識(shí)別模塊對象
????????z?=?zheye()?????????????????????????????#實(shí)例化對象
????????positions?=?z.Recognize("yzhm.jpg")?????#將驗(yàn)證碼本地路徑傳入Recognize方法識(shí)別,返回倒立圖片的坐標(biāo)
????????#?print(positions)??????????????????????#默認(rèn)倒立文字的y坐標(biāo)在前,x坐標(biāo)在后

????????#知乎網(wǎng)要求的倒立文字坐標(biāo)是x軸在前,y軸在后,所以我們需要定義一個(gè)列表來改變默認(rèn)的,倒立文字坐標(biāo)位置
????????pos_arr?=?[]
????????if?len(positions)?==?2:
????????????if?positions[0][1]?>?positions[1][1]:??????????????????????#判斷列表里第一個(gè)元祖里的第二個(gè)元素如果大于,第二個(gè)元祖里的第二個(gè)元素
????????????????pos_arr.append([positions[1][1],positions[1][0]])
????????????????pos_arr.append([positions[0][1],?positions[0][0]])
????????????else:
????????????????pos_arr.append([positions[0][1],?positions[0][0]])
????????????????pos_arr.append([positions[1][1],?positions[1][0]])
????????else:
????????????pos_arr.append([positions[0][1],?positions[0][0]])

????????print("處理后的驗(yàn)證碼坐標(biāo)",pos_arr)

#?-------------者也驗(yàn)證碼識(shí)別結(jié)束--------

????????if?len(pos_arr)?==?2:
????????????data?=?{????????????????????????????????????????????????????????????????????#?設(shè)置用戶登錄信息,對應(yīng)抓包得到字段
????????????????"_xsrf":?response.meta["xsrf"],
????????????????"password":?"279819",
????????????????"captcha":?"{"img_size":[200,44],"input_points":[[%.2f,%f],[%.2f,%f]]}"?%(
????????????????????pos_arr[0][0]?/?2,?pos_arr[0][1]?/?2,?pos_arr[1][0]?/?2,?pos_arr[1][1]?/?2),??#因?yàn)轵?yàn)證碼識(shí)別默認(rèn)是400X88的尺寸所以要除以2
????????????????"captcha_type":?"cn",
????????????????"phone_num":?"15284816568"
????????????}
????????else:
????????????data?=?{????????????????????????????????????????????????????????????????????#?設(shè)置用戶登錄信息,對應(yīng)抓包得到字段
????????????????"_xsrf":?response.meta["xsrf"],
????????????????"password":?"279819",
????????????????"captcha":?"{"img_size":[200,44],"input_points":[[%.2f,%f]]}"?%(
????????????????????pos_arr[0][0]?/?2,?pos_arr[0][1]?/?2),
????????????????"captcha_type":?"cn",
????????????????"phone_num":?"15284816568"
????????????}

????????print("登錄提交數(shù)據(jù)",data)

????????print("登錄中....!")
????????"""第二次用表單post請求,攜帶Cookie、瀏覽器代理、用戶登錄信息,進(jìn)行登錄給Cookie授權(quán)"""
????????return?[scrapy.FormRequest(
????????????url="https://www.zhihu.com/login/phone_num",????????????????????????#真實(shí)post地址
????????????meta={"cookiejar":response.meta["cookiejar"]},??????????????????????#接收第傳過來的Cookies
????????????headers=self.header,
????????????formdata=data,
????????????callback=self.next
????????)]

????def?next(self,response):
????????#?請求Cookie
????????Cookie2?=?response.request.headers.getlist("Cookie")
????????print("登錄時(shí)攜帶請求的Cookies:",Cookie2)

????????jieg?=?response.body.decode("utf-8")???#登錄后可以查看一下登錄響應(yīng)信息
????????print("登錄響應(yīng)結(jié)果:",jieg)

????????print("正在請需要登錄才可以訪問的頁面....!")

????????"""登錄后請求需要登錄才能查看的頁面,如個(gè)人中心,攜帶授權(quán)后的Cookie請求"""
????????yield?Request(
????????????url="https://www.zhihu.com/people/lin-gui-xiu-41/activities",
????????????headers=self.header,
????????????meta={"cookiejar":True},
????????????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()??#得到個(gè)人中心頁面
????????print("最終內(nèi)容",leir)
????????#?print(response.body.decode("utf-8"))


【轉(zhuǎn)載自:http://www.lqkweb.com】

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45146.html

相關(guān)文章

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

    摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 18、 Python快速開發(fā)布式搜索引擎Scrapy精講Scrapy啟動(dòng)文件的配置—xpath表

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤,搜各種資料我們自定義一個(gè)來作為啟動(dòng)文件導(dǎo)入執(zhí)行命令方法給解釋器,添加模塊新路徑將文件所在目錄添加到解釋器執(zhí)行命令爬蟲文件表達(dá)式基本使用設(shè)置爬蟲起始域名設(shè)置爬蟲起始地址默認(rèn)爬蟲回調(diào)函數(shù),返 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】 我們自定義一個(gè)main.py來作為啟動(dòng)...

    rubyshen 評論0 收藏0
  • 24、Python快速開發(fā)布式搜索引擎Scrapy精講—爬蟲和反爬的對抗過程以及策略—scrapy

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤,搜各種資料基本概念反爬蟲的目的爬蟲和反爬的對抗過程以及策略架構(gòu)源碼分析圖 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】 1、基本概念 showImg(https://segmentfault.com/img/remote/1460000019749170); 2、反爬...

    PumpkinDylan 評論0 收藏0
  • 25、Python快速開發(fā)布式搜索引擎Scrapy精講—Requests請求和Response響應(yīng)

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤,搜各種資料請求請求就是我們在爬蟲文件寫的方法,也就是提交一個(gè)請求地址,請求是我們自定義的方法提交一個(gè)請求參數(shù)字符串類型地址回調(diào)函數(shù)名稱字符串類型請求方式,如果字典類型的,瀏覽器用戶代理設(shè)置字典類型鍵值對,向回調(diào) 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】 Reque...

    Shihira 評論0 收藏0
  • 23、 Python快速開發(fā)布式搜索引擎Scrapy精講—craw scrapy item lo

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤,搜各種資料用命令創(chuàng)建自動(dòng)爬蟲文件創(chuàng)建爬蟲文件是根據(jù)的母版來創(chuàng)建爬蟲文件的查看創(chuàng)建爬蟲文件可用的母版母版說明創(chuàng)建基礎(chǔ)爬蟲文件創(chuàng)建自動(dòng)爬蟲文件創(chuàng)建爬取數(shù)據(jù)爬蟲文件創(chuàng)建爬取數(shù)據(jù)爬蟲文件創(chuàng)建一個(gè)基礎(chǔ)母版爬蟲,其他同理 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】 用命令創(chuàng)建自動(dòng)爬...

    QiuyueZhong 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<