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。
import urllib
import urllib2
import cookielib email = 'your_email'
pwd = 'your_password'
data = {'email':email,'raw_pwd':pwd}
post_data = urllib.urlencode(data) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) response = opener.open('http://www.baicizhan.com/login', post_data)
print(response.read())
这样,我们可以发现,打印的是登录后的页面源码,这说明我们成功实现了登录。
接着,我们来分析下单词列表的页面:http://www.baicizhan.com/user/words/list

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

如果要在Python中解析json,我们需要json库。我们打印下前两页的单词看看:
import urllib2
import cookielib
import urllib
import json email = 'your_email'
pwd = 'your_password'
data = {'email':email,'raw_pwd':pwd}
post_data = urllib.urlencode(data) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) opener.open('http://www.baicizhan.com/login', post_data) for i in range(1, 3):
content = json.loads(opener.open("http://www.baicizhan.com/user/all_done_words_list?page=%s"%i).read())
for word in content["list"]:
print word["word"]
print word["word_meaning"].strip()
print word["wrong_times"]
这样,我们就能打印出前两页的单词以及释义、错误次数。
至于要把所有已学单词都获取到,只需要稍作修改即可,之后我们便能把这些数据存储进行一些后续的处理。
Python爬虫入门案例:获取百词斩已学单词列表的更多相关文章
- python 爬虫入门----案例爬取上海租房图片
前言 对于一个net开发这爬虫真真的以前没有写过.这段时间学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬虫的第三方库Requests与BeautifulSoup. ...
- python 爬虫入门案例----爬取某站上海租房图片
前言 对于一个net开发这爬虫真真的以前没有写过.这段时间开始学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬虫的第三方库Requests与BeautifulSou ...
- python爬虫入门-开发环境与小例子
python爬虫入门 开发环境 ubuntu 16.04 sublime pycharm requests库 requests库安装: sudo pip install requests 第一个例子 ...
- Python 爬虫入门(二)——爬取妹子图
Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...
- Python爬虫入门之正则表达式
在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...
- Python爬虫入门之Cookie的使用
本节我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要 ...
- Python爬虫入门之Urllib库的基本使用
那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧. 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解 ...
- 3.Python爬虫入门三之Urllib和Urllib2库的基本使用
1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS ...
- 2.Python爬虫入门二之爬虫基础了解
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
随机推荐
- 忘记密码流程——UUID,AES
忘记密码流程 1.进入忘记密码页面 2. 后台检验参数合法性(null,验证码,邮箱合法性) 3,生成更新密码链接,并将相关参数写入DB link=urlBase(baseurl)+updatePas ...
- php多条件搜索
PHP多条件查询 December : Tuesdayby 小屋 在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子.在本例中,我们要实现能够通过地理位置,物业类型,房屋 ...
- 学习ExtJs教程初级
搭建环境:myeclipse10 +tomcat6+jdk6 新建一个webproject(启动myeclipse:file--new--webproject) 导入相关的js和css(百度下载就好. ...
- 集合的概念 Stack和Queue Dictionary ArrayList和List<T>方法及用法
Stack和stack<T>方法一样// 管理方式: 后进先出 LIFO 栈// Stack<string> s=new Stack<string>();//(放一 ...
- fedora25 下配置samba
本例是在 / 目录下建立share 文件夹为例 Sudo dnf install samba samba-common samba-clientsudo mkdir /share sudo chmod ...
- Android菜鸟成长记15 -- BitMap
BitMap简介 Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bi ...
- git操作日志
切换分支 git checkout plugin 更新文件 git pull origin master 合并分支 主分支合并到分支 git checkout dev_2 git merge mast ...
- sass、less和stylus的安装使用和入门实践
刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...
- CSS的clip-path 一
首先介绍一下,我觉得前端开发都是很具有分享精神的,很多人都写出了很多优秀的总结经验供新手们参考,本人只是个搬运工,将别人优秀的文章进行了总结,本文主要转载自 大漠 的文章 http://www. ...
- MFC对话框中显示BMP,JPG图片
//************************************ // 方法说明: 显示JPG和GIF.BMP图片 // 参数说明: CDC * pDC 设 ...