Python爬蟲實戰之爬取鏈家廣州房價_04鏈家的模擬登入(記錄)
問題引入
開始鏈家爬蟲的時候,瞭解到需要實現模擬登入,不登入不能爬取三個月之內的資料,目前暫未驗證這個說法是否正確,這一小節記錄一下利用瀏覽器(IE11)的開發者工具去分析模擬登入網站(鏈家)的內部邏輯過程,花了一個週末的時間,部分問題暫未解決。
思路介紹
利用瀏覽器(IE11)的開發者工具,啟用網路流量捕獲,在除錯之前,先做一些配置上的準備工作:清除舊的cookie和快取,禁用跳轉後清除日誌(Firefox在開發工具的Settings設定中勾上啟用持續日誌)。
首先簡要介紹一下模擬登入網站的基本邏輯,模擬網站登入需要知道,要向什麼url地址,傳送什麼樣的資料,GET請求還是POST請求。GET請求從伺服器請求資料,不需要post data,但是經常需要在url後面加上對應的query parameter,類似?para1=value1¶2=value2之類的形式,本質上有點類似於post data。POST請求需要提供對應的post data,對應工具中的Request Body。而剩下的,是設定傳送請求時的相關引數,包括user-agent等,對應工具中的Request Headers。提交請求後,網站伺服器返回Response Headers和Response Body。其中,還經常涉及到cookie資訊,在傳送前,準備好,傳送給伺服器,伺服器返回的資訊中,往往也包含更新後的cookie值。
總結一下,主要關注點:Request Headers、Request Body、Response Headers、Response Body、Cookie。
開啟IE11後,調出工具,切換到網路介面,開啟鏈家,過濾HTML請求,可以看到,頁面跳轉到http://gz.lianjia.com/,伺服器返回的Response Headers裡面設定了一些cookie,如lianjia_ssid
和lianjia_uuid
。
點選登入,然後輸入使用者名稱和密碼,正常登入。
找到登入網站所涉及的最核心的地址,對於此,我們可以通過搜尋在哪裡傳送了我們的密碼。可以看到,和我們密碼相關的url地址為
分析所提交的資料(post data)中的引數和值,這就是模擬網站登入的核心資料了,是在寫程式碼時,對於url=https://passport.lianjia.com/cas/login提交POST請求時,要傳送的一些引數和值。
username=XXXXXXXXXXX
password=XXXXXXXXXX
verifycode=
service=http%3A%2F%2Fgz.lianjia.com%2F
isajax=true
code=
lt=LT-99999 -9HQFRxGdmePMdsCSnTeH9h2ne26uQbnWqN2
分析Cookie,在最核心的地址https://passport.lianjia.com/cas/login的Request Headers中,lianjia_ssid
、lianjia_uuid
和JSESSIONID
,其中lianjia_ssid
、lianjia_uuid
通過先訪問其他頁面獲取,現在接著去找名為JSESSIONID
的Cookie,是從哪裡來的,所以,能想到的,就是先去搜索JSESSIONID
,搜尋出來的第一個url地址是https://passport.lianjia.com/cas/prelogin/loginTicket?。很明顯,其就是我們所期望的,因為其中的JSESSIONID
是通過Set-Cookie所獲得的,是訪問伺服器的某個地址https://passport.lianjia.com/cas/prelogin/loginTicket?,然後伺服器所返回的Cookie值。
而對於模擬登入網站中,所涉及的其他Cookie、其他引數的值,可參考上述的邏輯,去一點點分析,找到最終的某個值的來源,然後才能用程式模擬。
總結模擬登入鏈家的基本流程
至此,對於想要模擬登入鏈家的內部邏輯過程,基本上清楚了。
待解決問題
在通過Python實現的時候,利用如上的流程,發現實際上行不通,登入失敗。這裡提出幾個未解決的問題。
如何驗證模擬登入網站已成功了呢?
按理,在通過最後一步訪問地址為https://passport.lianjia.com/cas/login時,帶上賬號、密碼、提取的lt值,已獲取JSESSIONID值的情況下,通過返回的html程式碼或cookie值,是可以判斷模擬登入網站已成功的,然而在進一步分析資料來源的時候,發現有一個lianjia_token
在登入後的頁面經常出現,不知在模擬登入過程中是否需要用到?是否需要獲取到lianjia_token
才算成功?也不知是如何得到的?和JS指令碼是否有關係?
微信公眾號「資料分析」,分享資料科學家的自我修養,既然遇見,不如一起成長。
相關推薦
Python爬蟲實戰之爬取鏈家廣州房價_04鏈家的模擬登入(記錄)
問題引入 開始鏈家爬蟲的時候,瞭解到需要實現模擬登入,不登入不能爬取三個月之內的資料,目前暫未驗證這個說法是否正確,這一小節記錄一下利用瀏覽器(IE11)的開發者工具去分析模擬登入網站(鏈家)的內部邏輯過程,花了一個週末的時間,部分問題暫未解決。 思路介
Python爬蟲實戰之爬取B站番劇資訊(詳細過程)
目標:爬取b站番劇最近更新 輸出格式:名字+播放量+簡介 那麼開始擼吧~ 用到的類庫: requests:網路請求 pyquery:解析xml文件,像使用jquery一樣簡單哦~ 1.分析頁面佈局,找到需要爬取的內
python 爬蟲實戰4 爬取淘寶MM照片
寫真 換行符 rip 多行 get sts tool -o true 本篇目標 抓取淘寶MM的姓名,頭像,年齡 抓取每一個MM的資料簡介以及寫真圖片 把每一個MM的寫真圖片按照文件夾保存到本地 熟悉文件保存的過程 1.URL的格式 在這裏我們用到的URL是 http:/
Python 爬蟲入門之爬取妹子圖
Python 爬蟲入門之爬取妹子圖 來源:李英傑 連結: https://segmentfault.com/a/1190000015798452 聽說你寫程式碼沒動力?本文就給你動力,爬取妹子圖。如果這也沒動力那就沒救了。 GitHub 地址:&
python爬蟲學習之爬取全國各省市縣級城市郵政編碼
例項需求:運用python語言在http://www.ip138.com/post/網站爬取全國各個省市縣級城市的郵政編碼,並且儲存在excel檔案中 例項環境:python3.7 requests庫(內建的python庫,無需手動安裝) xlwt庫(需要自己手動安裝) 例項網站:
python爬蟲入門之爬取小說.md
新手教學:用Python爬取小說 我們在學習Python之餘總想著讓其更具趣味性,可以更好地學習。下面我將講解如何去從網站中爬取我們想看的小說。讓我們枯燥無聊的學習生涯稍微多些趣味。 需要只是一點點對requests庫、Beautiful庫及python基礎知識
python爬蟲例項之爬取智聯招聘資料
這是作者的處女作,輕點噴。。。。 實習在公司時領導要求學習python,python的爬蟲作為入門來說是十分友好的,話不多說,開始進入正題。 主要是爬去智聯的崗位資訊進行對比分析出java和python的趨勢,爬取欄位:工作地點,薪資範圍,要求學歷,
[python3.6]爬蟲實戰之爬取淘女郎圖片
原博主地址:http://cuiqingcai.com/1001.html 原博是python2.7寫的,並且隨著淘寶程式碼的改版,原博爬蟲已經不可用。 參考 http://minstrel.top/TaoBaoMM 這位博主跟我一樣最近正在學習爬蟲。 1 定個小目標 l
Python爬蟲實戰(3)-爬取豆瓣音樂Top250資料(超詳細)
前言 首先我們先來回憶一下上兩篇爬蟲實戰文章: 第一篇:講到了requests和bs4和一些網頁基本操作。 第二篇:用到了正則表示式-re模組 今天我們用lxml庫和xpath語法來爬蟲實戰。 1.安裝lxml庫 window:直接用pip去
python3 爬蟲實戰之爬取網易新聞APP端
(一)使用工具 這裡使用了火狐瀏覽器的user-agent外掛,不懂的可以點這裡火狐外掛使用 (二)爬蟲操作步驟: 百度 網易新聞並選擇 步驟一: 步驟二: 步驟三: 步驟四: 最後一步: 注意點: (1
Python爬蟲實戰之抓取淘寶MM照片(一)
背景 Python爬蟲系列教程的一次實戰,然而淘寶進行過頁面改版,現在已經沒有淘寶MM這個版面,取而代之的是淘女郎。改版後,頁面是使用JS渲染的,並不能直接通過url來切換頁碼。該系列教程後續講到
python 爬蟲實戰專案--爬取京東商品資訊(價格、優惠、排名、好評率等)
利用splash爬取京東商品資訊一、環境window7python3.5pycharmscrapyscrapy-splashMySQL二、簡介 為了體驗scrapy-spla
python爬蟲系列之爬取百度文庫(一)
一、什麼是selenium 在爬取百度文庫的過程中,我們需要使用到一個工具selenium(瀏覽器自動測試框架),selenium是一個用於web應用程式測試的工具,它可以測試直接執行在瀏覽器中,就像我們平時用瀏覽器上網一樣,支援IE(7,8,9,10,11),firefo
Python爬蟲實戰(6)-爬取QQ空間好友說說並生成詞雲(超詳細)
前言 先看效果圖: TXT檔案: 如果想生成特定圖片樣式的詞雲圖,可以直接訪問下面這篇文章學一下: https://mp.weixin.qq.com/s/FUwQ4jZu6KMkjRvEG3UfGw 前幾天我們陸陸續續的講了Python如何生成
python爬蟲練習之爬取豆瓣讀書所有標籤下的書籍資訊
第一步,爬取所有圖書標籤及分類 到達圖書標籤頁,分類瀏覽,第一步需要爬取所有分類及其分類下的所有標籤 並用dict儲存 需要解析的內容 1.bs4解析 import requests from bs4 import Beau
Python爬蟲項目--爬取鏈家熱門城市新房
聲明 rules nal logging 命令行 -- new exec 狀態 本次實戰是利用爬蟲爬取鏈家的新房(聲明: 內容僅用於學習交流, 請勿用作商業用途) 環境 win8, python 3.7, pycharm 正文 1. 目標網站分析 通過分析, 找出相關url
Python的scrapy之爬取鏈家網房價資訊並儲存到本地
因為有在北京租房的打算,於是上網瀏覽了一下鏈家網站的房價,想將他們爬取下來,並儲存到本地。 先看鏈家網的原始碼。。房價資訊 都儲存在 ul 下的li 裡面 爬蟲結構: 其中封裝了一個數據庫處理模組,還有一個user-agent池。。 先看mylian
Python的scrapy之爬取鏈家網房價信息並保存到本地
width gif pat lse idt ext tst maximum spa 因為有在北京租房的打算,於是上網瀏覽了一下鏈家網站的房價,想將他們爬取下來,並保存到本地。 先看鏈家網的源碼。。房價信息 都保存在 ul 下的li 裏面 ? 爬蟲結構: ? 其中封裝了一
Python爬蟲實戰之Requests+正則表示式爬取貓眼電影Top100
import requests from requests.exceptions import RequestException import re import json # from multiprocessing import Pool # 測試了下 這裡需要自己新增頭部 否則得不到網頁 hea
Python3[爬蟲實戰] scrapy爬取汽車之家全站連結存json檔案
昨晚晚上一不小心學習了崔慶才,崔大神的部落格,試著嘗試一下爬取一個網站的全部內容,福利吧網站現在已經找不到了,然後一不小心逛到了汽車之家 (http://www.autohome.com.cn/beijing/) 很喜歡這個網站,女人都喜歡車,更何況男人呢。(