扇貝簡易爬蟲

前段時間因為編譯時間過長的問題很是苦惱,玩微信刷微博吧又怕被老板看到而且影響工作,所以準備自己寫個爬蟲抓取扇貝在背的單詞再加桌面提醒好好利用編譯這段時間。

項目源碼

這是最終的形態(tài):

屏幕快照 2017-03-04 下午9.53.40.png

提醒這里用的是 Growl(收費) 的命令行版本 GrowlNotify.

其實寫這個爬蟲并不難,主要分為以下兩個小步驟:

  • 登錄
  • Cookie 保存
  • 獲取數據

登錄

登錄的接口,我們可以借助 Chrome 的開發(fā)者工具,我們模擬 扇貝 登錄后, 可以在開發(fā)者工具中的 Network 中看到 登錄的網絡請求,注意這里需要點擊`Preserve log' 保留日志。

粘貼圖片.png

在這里我們可以觀察到訪問的接口是:https://www.shanbay.com/api/v1/account/login/web/

并在過程中傳輸了用戶名密碼。我們模擬這個提交就可以模擬登陸了。

data = {'username': 'cijianzy@gmail.com', 'password': '******'}
request = urllib2.Request('https://www.shanbay.com/api/v1/account/login/web/', urllib.urlencode(data))
request.get_method = lambda: 'PUT'
response = urllib2.urlopen(request)

<b>登陸成功后的結果</b>

{"msg": "SUCCESS", "status_code": 0, "data": {}}

登陸就大功告成了

Cookie 保存

那么登陸后我們需要將 Cookie 保存起來以便后續(xù)訪問呢。
這里在訪問前使用如下方法來保存:

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
urllib2.install_opener(opener)

獲取數據

這一步取決于你想獲取的數據,可以用上面找登陸接口方法模擬訪問一遍找到數據接口即可。我這里找的是在學的接口。接口地址如下:

https://www.shanbay.com/api/v1/bdc/library/familiar/?page={頁數}&_={用戶id}

可以看到,我這里枚舉頁數即可拿到所有在學的單詞了,返回的是 JSON 字符串也比較方便解析。返回示例

參考鏈接

python爬蟲模擬登陸扇貝單詞

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,286評論 25 708
  • 感覺很久沒有寫點東西了,因為最近太忙(外因)或是自身太懶(內因)的原因。總之,很早之前,我就開始規(guī)劃著寫點關于網絡...
    figotan閱讀 6,173評論 2 52
  • 翻香令?驚春 醒春恐被飛雪擾,遲日驚覺寒意消。 東荷翻,西蕊傾,這一番、沈水暗同瞧。 綠楊陰里花意鬧,小蓬山下金釵...
    丘小山閱讀 227評論 2 4
  • 未來很近,余生很短,除了相愛,我們還能做些什么? 你的眷戀,注定是我一生駐足的風景 此生愿與你為伴,日食三餐 人生...
    邱果閱讀 975評論 0 0
  • 我們買東西時,一件百搭的商品總會讓我們更加有購買欲望,但是百搭也就意味著買的人多,意味著容易碰到穿著類似的人。俗話...
    前店后廠閱讀 1,456評論 0 0