zoukankan      html  css  js  c++  java
  • Python爬虫入门案例:获取百词斩已学单词列表

    百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住。我们来用Python来爬取这些信息,同时学习Python爬虫基础。

    首先来到百词斩网站:http://www.baicizhan.com/login

    这个网站是需要登录的,不过还好没验证码,我们可以先看下在登录过程中浏览器POST了哪些数据。打开浏览器开发工具(F12),以Chrome浏览器为例,记录登录过程中浏览器的Network情况:

    我们可以发现,在登录过程中,浏览器向http://www.baicizhan.com/login以POST方式提交了数据。提交了什么数据呢?我们可以在下面的Form Data里看到。

    其中,email是用户名,raw_pwd就是密码,这里的数据是需要经过URL编码的,我们可以点view URL encoded查看编码后的样子。URL编码需要urllib库。

    在请求头(Request Headers)部分,我们还看到了Cookie。因此,我们还需要cookie库,来处理我们的Cookie。

     1 import urllib
     2 import urllib2
     3 import cookielib
     4 
     5 email = 'your_email' 
     6 pwd = 'your_password' 
     7 data = {'email':email,'raw_pwd':pwd}
     8 post_data = urllib.urlencode(data)
     9 
    10 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
    11 
    12 response = opener.open('http://www.baicizhan.com/login', post_data)
    13 print(response.read())

    这样,我们可以发现,打印的是登录后的页面源码,这说明我们成功实现了登录。

    接着,我们来分析下单词列表的页面:http://www.baicizhan.com/user/words/list

     

    当我们点击页码时,实际上是发送了GET请求。然后我们看Response,发现是个json,我们解析下看看(可以到http://www.json.cn/在线解析json)

    如果要在Python中解析json,我们需要json库。我们打印下前两页的单词看看:

     1 import urllib2
     2 import cookielib
     3 import urllib
     4 import json
     5 
     6 email = 'your_email' 
     7 pwd = 'your_password' 
     8 data = {'email':email,'raw_pwd':pwd}
     9 post_data = urllib.urlencode(data)
    10 
    11 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
    12 
    13 opener.open('http://www.baicizhan.com/login', post_data)
    14 
    15 for i in range(1, 3):
    16     content = json.loads(opener.open("http://www.baicizhan.com/user/all_done_words_list?page=%s"%i).read())
    17     for word in content["list"]:
    18         print word["word"]
    19         print word["word_meaning"].strip()
    20         print word["wrong_times"]

    这样,我们就能打印出前两页的单词以及释义、错误次数。

    至于要把所有已学单词都获取到,只需要稍作修改即可,之后我们便能把这些数据存储进行一些后续的处理。

  • 相关阅读:
    第二阶段:冲刺2(个人界面的优化---头像上传)
    第二阶段:冲刺1(任务的分配)
    学习进度第12周
    读书笔记《人月神话》1
    学习进度第11周
    读书笔记《编程珠矶》3
    学习进度第10周
    第一阶段:冲刺10(完结)
    第十五周学习进度总结
    第十四周学习进度总结
  • 原文地址:https://www.cnblogs.com/wenjianmuran/p/5049966.html
Copyright © 2011-2022 走看看