电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python模擬登入的N種方式(建議收藏)

瀏覽:137日期:2022-07-23 18:05:22

這段時(shí)間在研究如何破解官網(wǎng)驗(yàn)證碼,然后進(jìn)行下一步的爬蟲操作,然而一個(gè)多星期過去了,編寫的代碼去識(shí)別驗(yàn)證碼的效率還是很低,嘗試用了tesserorc庫(kù)和百度的API接口,都無濟(jì)于事,本以為追不上五月的小尾巴,突然想到我嘗試了這么多方法何不為一篇破坑博客呢。

現(xiàn)在很多官網(wǎng)都會(huì)給出相應(yīng)的反扒措施,就拿這個(gè)登入來說,如果你不登入賬號(hào)那么你就只能獲取微量的信息,甚至獲取不了信息,這對(duì)我們爬蟲來說是非常不友好的,但是我們總不可能每次都需要手動(dòng)登入吧,一次二次你能接受,大工程呢?既然學(xué)了python,而不為用腳本代碼幫你做這點(diǎn)事情呢?

圖為簡(jiǎn)書登入模塊:

Python模擬登入的N種方式(建議收藏)

不同方式優(yōu)缺點(diǎn)對(duì)比:

突然想到一種可能更簡(jiǎn)單的方式,所以整理得三,不同情況參考不同用法!

如下:

方式 優(yōu)點(diǎn) 缺點(diǎn) requests的auth參數(shù) 極簡(jiǎn) 出現(xiàn)的次數(shù)很少 requests的session會(huì)話 維持cookies一致 需要構(gòu)造一定參數(shù) selenium自動(dòng)化 最強(qiáng)的模擬登入 安裝復(fù)雜,庫(kù)名太多

以上就是三大登入的優(yōu)缺點(diǎn),個(gè)人推薦使用session去嘗試模擬登入!

方式一: requests的auth參數(shù):

這個(gè)是我無意在書上看到的。關(guān)于requests的高級(jí)用法中,提到了這點(diǎn),這里就記錄一下,個(gè)人覺得這種方式只可能出現(xiàn)在某網(wǎng)站中,學(xué)了也挺好的,省的限制觀看次數(shù),后續(xù)我也會(huì)更新如何破解vip視頻的思路,有需要的關(guān)注我。

使用類似場(chǎng)所:

Python模擬登入的N種方式(建議收藏)

用法很簡(jiǎn)單,代碼如下:

# parasm: url : 網(wǎng)站# parasm: username: 用戶名# parasm: password : 密碼import requestsurl = ’********’r = requests.get(url, anth=(’username’, ’password’))print(r.text)

還是一句話,這種方式極大可能出現(xiàn)在某網(wǎng)站中,其他情況基本不可能出現(xiàn),那么就得使用下面二種方式了。

方式一: requests高級(jí)用法擴(kuò)展:

相信很多人看書都不看全的,很多細(xì)節(jié)都在書中呢,下面擴(kuò)展幾種requests庫(kù)的高級(jí)用法,很好用的東西。

超時(shí)處理: 某網(wǎng)站服務(wù)器搭建在國(guó)外,加載巨慢。代碼可能拋出timeout : xxxx等情況,這個(gè)時(shí)候用它:

r = requests.get(url , timeout=30)

文件上傳: 假如某網(wǎng)站需要上傳文件,那么就使用它:

files = {’file’: open(’img.jpg’, ’rb’)}r = requests.get(url, files=files)print(r.text)

cookies設(shè)置: headers這個(gè)很多人都使用過吧,基本都是加一個(gè)代理頭就完事了,其實(shí)也可以設(shè)置其他的參數(shù),然后使用post請(qǐng)求,就可以簡(jiǎn)單的模擬登入一次了,用法如下:

這些字段一般都需要加上,常用的就是代理頭user-agent,這個(gè)必須設(shè)置:

headers = {’cookies’: ’瀏覽器復(fù)制’,’Host’: ’瀏覽器復(fù)制’, ’Referer’ ’瀏覽器復(fù)制’’User-Agent’: ’瀏覽器復(fù)制’}

方式二: requests的session會(huì)話使用:

會(huì)話是什么: 就好比你和朋友對(duì)接電話,你這頭是客戶端,朋友那頭是服務(wù)端,你們接通電話,這個(gè)通話記錄就代表一個(gè)會(huì)話,電話中,你可以通過聲音知道是你朋友,在服務(wù)器中,你請(qǐng)求成功一次,客戶端和服務(wù)端就維持了一個(gè)會(huì)話,這個(gè)會(huì)話能代表你的身份,那么這段時(shí)間在一個(gè)瀏覽器中,你進(jìn)入網(wǎng)站就不需要在輸入賬號(hào)密碼了,直到你退出瀏覽器,那么會(huì)話截至,下次登入就需要再次輸入密碼了。

很好的是,Session能很好的幫助我們維持會(huì)話,從而達(dá)到cookies的一致性。區(qū)別于一半的請(qǐng)求requests,就可以達(dá)到get 和 post 共同的作用;

基本用法如下:

s = requests.Session()r = s.get(url)

那么我們使用會(huì)話從GitHub的模擬登入嘗試下:

首先我們需要登入一次,看看需要構(gòu)建什么參數(shù): 登入網(wǎng)站

在這個(gè)界面就開啟f12 , 不然看不了會(huì)話維持:

登入成功之后,如下圖,查看構(gòu)造參數(shù):

Python模擬登入的N種方式(建議收藏)

打開這個(gè)From Data 會(huì)發(fā)現(xiàn),authenticity_token 這個(gè)字段,我們可能構(gòu)造不了,這個(gè)時(shí)候,就得回到 登入界面了, 打開源代碼。F這個(gè)字段:

Python模擬登入的N種方式(建議收藏)

如圖: 只需要爬取這個(gè)頁面,獲得這個(gè)參數(shù) 那么就可以構(gòu)造登入的所有參數(shù)了, 爬蟲代碼如下:

def token(self): # 獲得 authenticity_token 字段 方便下次模擬登入# login_url : 登入網(wǎng)址 r = self.session.get(self.login_url, headers=self.headers) if r.status_code == 200: r.encoding = r.apparent_encoding html = etree.HTML(r.text) html = etree.tostring(html) html = etree.fromstring(html) tk = html.xpath(’//*[@id='login']/form/input[1]/@value’) return tk

對(duì)于cookies的一致性,使用session 就已經(jīng)搞定了這個(gè)問題,根據(jù)上圖的Name字段中的session ,我們可以找到會(huì)話網(wǎng)址: ‘https://github.com/session’

所以我們現(xiàn)在只需要構(gòu)造一個(gè)函數(shù)去請(qǐng)求這個(gè)會(huì)話網(wǎng)址,就可以達(dá)到我們的要求了:

代碼如下, 這里我構(gòu)造了一個(gè)class類,賬號(hào)密碼用自己,或者前面?zhèn)髦颠^去,圖中的函數(shù)是二個(gè)爬蟲代碼,可以根據(jù)需求設(shè)計(jì):

def login(self): # 模擬登入 post_date = { ’commit’: ’Sign in’, ’authenticity_token’: self.token(), ’ga_id’: ’1453216517.1584352055’, ’login’: self.email, ’password’: self.password } # 打印倉(cāng)庫(kù)信息 r = self.session.post(self.post_url, data=post_date, headers=self.headers) if r.status_code == 200: self.get_info_1(r.text) # 打印個(gè)人信息和郵箱 r = self.session.get(self.logined_url, headers=self.headers) if r.status_code == 200: self.get_info_2(r.text)

會(huì)話登入到這里就結(jié)束了,主要是構(gòu)造參數(shù)挺麻煩的,需要頁面里尋找,看到這里給個(gè)關(guān)注和贊啦。

方式三: selenium模擬登入:

如何下載selenium相關(guān)的插件,我就不做介紹了,篇幅有限

使用selenium 就是需要考慮到表單的切換,和定位元素等,其他都很簡(jiǎn)單,這里用4399游戲網(wǎng)頁做一個(gè)實(shí)例: 網(wǎng)址

點(diǎn)擊登入:

Python模擬登入的N種方式(建議收藏)

彈出登入表單:

Python模擬登入的N種方式(建議收藏)

這里我們需要切換表單,不然輸入不了,怎么找到這個(gè)表單的,很簡(jiǎn)單,整塊的高亮就行:

代碼如下:

from selenium import webdriver # 導(dǎo)入庫(kù)from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import expected_conditions as ECbrowser = webdriver.Chrome() # 聲明瀏覽器browser.implicitly_wait(30) # 隱性等待 在規(guī)定的時(shí)間內(nèi),最長(zhǎng)等待S秒browser.get(’http://www.4399.com’) # 打開設(shè)置的網(wǎng)址# ID定位 或者其他的都行browser.find_element_by_id(’login_tologin’).click() # 點(diǎn)擊登入界面browser.switch_to.frame('popup_login_frame') # 進(jìn)入表單中browser.find_element_by_css_selector(’#username’).clear()browser.find_element_by_id(’username’).send_keys(’賬號(hào)’)browser.find_element_by_id(’username’).send_keys(Keys.TAB)browser.find_element_by_id(’j-password’).send_keys(’密碼’)browser.find_element_by_id(’j-password’).send_keys(Keys.ENTER)

我給的例子沒有涉及到驗(yàn)證碼,如果涉及到驗(yàn)證碼,要不人工輸入,要么破解驗(yàn)證碼,或者交給打碼平臺(tái),最好的方式就是繞過驗(yàn)證碼,這個(gè)我也在思考如何去實(shí)現(xiàn)。以上就是這周的知識(shí)總結(jié),有幫助的話,就點(diǎn)個(gè)贊和關(guān)注吧!

到此這篇關(guān)于Python模擬登入的N種方式的文章就介紹到這了,更多相關(guān)Python 模擬登入內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 北京京云律师事务所| 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面 | 打包钢带,铁皮打包带,烤蓝打包带-高密市金和金属制品厂 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 中国在职研究生招生信息网| 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 米顿罗计量泵(科普)——韬铭机械 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 北京乾茂兴业科技发展有限公司 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 |