成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python模擬登錄segmentfault及備份文章(續(xù))

mozillazg / 698人閱讀

摘要:上一篇用模擬請(qǐng)求,最后沒有拿到。對(duì)于跳轉(zhuǎn)是由網(wǎng)頁中的腳本所控制的,使用這種模擬真實(shí)瀏覽器行為,可以更容易保證其完成整個(gè)登錄行為,相對(duì)地因?yàn)槟M的成本速度會(huì)慢一些。

上一篇用requests模擬請(qǐng)求,最后沒有拿到cookies。今天偶爾看一篇HTTP相關(guān)的文章,發(fā)現(xiàn)在某些請(qǐng)求返回的header中會(huì)有set-cookie字段,很明顯之前的失敗應(yīng)該是沒有接收到包含這個(gè)字段的response。自己嘗試人肉登錄發(fā)現(xiàn),cookie中的sf_remember字段是登錄成功后跳轉(zhuǎn)到首頁時(shí)進(jìn)行set-cookie的,而不是post的時(shí)候設(shè)置的。所以今天為了更好地模擬請(qǐng)求,使用request.Session來進(jìn)行,這樣cookie就不用自己去同步了,能更好地模擬瀏覽器行為

def _get_user_cookies(self):
        s = requests.Session()
        s.headers.update(headers)
        rep = s.get(target_url)
        post_url = "%s%s?_=%s" % (target_url, login_api_path,
                                  self.get_req_from_html(rep.text))
        data = {
            "mail": self.username,
            "password": self.passwd,
        }
        s.post(post_url, data=data)

通過反復(fù)登陸,我發(fā)現(xiàn)必須帶要帶headers,而headers必須的字段只有Referer,這樣才能post成功,成功后會(huì)經(jīng)過一個(gè)302重定向到首頁,經(jīng)歷這個(gè)過程便能登陸成功。我查看登陸成功后的cookies,如下:

]>

并沒有sf_remember這個(gè)字段,可能是因?yàn)槲以趐ost的時(shí)候沒有使用remember字段(記住該用戶那個(gè)),說明之前想當(dāng)然認(rèn)為該字段就是標(biāo)記登錄是不可靠的,標(biāo)記登錄的很有可能只是PHPSESSID這個(gè)值而已。下圖登錄后的所有cookies

因此模擬登錄及備份文章就不需要phantomjs了,只用requests就足夠,當(dāng)然這只是對(duì)于segmemtfault來說,對(duì)于微博那種動(dòng)態(tài)的,說不定就只能用Phantomjs,當(dāng)然能分析出請(qǐng)求過程就能最大限度地使用簡(jiǎn)單方法來做自己想做的事

代碼在這兒,增加了打印文章信息及耗時(shí)信息的功能,截圖如下:

總結(jié):

對(duì)于登錄(或其它任何post行為)時(shí)由登錄鏈接直接進(jìn)行跳轉(zhuǎn)的(跳轉(zhuǎn)次數(shù)不限),可以直接用requests模擬,它的Session完全可以跟隨這種跳轉(zhuǎn)行為。
對(duì)于跳轉(zhuǎn)是由網(wǎng)頁中的js腳本所控制的,使用phantomjs這種模擬真實(shí)瀏覽器行為,可以更容易保證其完成整個(gè)登錄行為,相對(duì)地因?yàn)槟M的成本速度會(huì)慢一些。而且這種類型,理論上也是可以用requests模擬出來的,但是需要事先去分析導(dǎo)致跳轉(zhuǎn)的js代碼,會(huì)比較麻煩且不一定能成為,如果成功則可以提速。比如網(wǎng)易云音樂的藝人頁面,請(qǐng)求了兩個(gè)doc,其實(shí)只有第二個(gè)是需要的。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37674.html

相關(guān)文章

  • python模擬登錄segmentfault備份文章

    摘要:繼續(xù)嘗試,成功,但是還是未登錄狀態(tài)。如前所說,用模擬登錄拿到,然后帶上去取文章備份就好了,用加了點(diǎn)并發(fā),代碼放到上了,地址,歡迎使用及拍磚以上 直接post登錄失敗 一般的網(wǎng)站確實(shí)直接post之后就登錄成功了,然后拿到cookie想怎么玩就怎么玩。不過的確世事難料,失敗在所難免。 首先是人肉登錄,用chrome的network欄查看post了些什么東西,有三項(xiàng): mail passw...

    DrizzleX 評(píng)論0 收藏0
  • python初學(xué)——網(wǎng)絡(luò)編程之FTP服務(wù)器

    摘要:并可以實(shí)現(xiàn),功能對(duì)用戶進(jìn)行磁盤配額,每個(gè)用戶的可用空間不同使用模塊檢查用戶目錄的空間上文件大小,如果大于就不讓傳輸。不允許超過磁盤配額。文件的傳輸過程中顯示精度條。用戶價(jià)值實(shí)現(xiàn)一套自己的服務(wù)端與客戶端。 MYFTP是我寫的模擬FTP服務(wù)端和客戶端交互的程序。通過使用socket去模擬ftp的文件下載與上次兩個(gè)核心功能。并不是使用真實(shí)FTP協(xié)議去實(shí)現(xiàn)。 基本需求 用戶加密認(rèn)證 # ha...

    TZLLOG 評(píng)論0 收藏0
  • 非計(jì)算機(jī)專業(yè)小白自學(xué)爬蟲全指南(附資源)

    摘要:爬蟲是我接觸計(jì)算機(jī)編程的入門。練練練本文推薦的資源就是以項(xiàng)目練習(xí)帶動(dòng)爬蟲學(xué)習(xí),囊括了大部分爬蟲工程師要求的知識(shí)點(diǎn)。拓展閱讀一文了解爬蟲與反爬蟲最后,請(qǐng)注意,爬蟲的工作機(jī)會(huì)相對(duì)較少。 爬蟲是我接觸計(jì)算機(jī)編程的入門。哥當(dāng)年寫第一行代碼的時(shí)候別提有多痛苦。 本文旨在用一篇文章說透爬蟲如何自學(xué)可以達(dá)到找工作的要求。 爬蟲的學(xué)習(xí)就是跟著實(shí)際項(xiàng)目去學(xué),每個(gè)項(xiàng)目會(huì)涉及到不同的知識(shí)點(diǎn),項(xiàng)目做多了,自然...

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

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

    Harriet666 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<