松勤-以工匠精神,专注IT在线教育,打造中国互联网教育品牌。
【松勤软件自动化测试】Python爬虫入门案例:获取百词斩已学单词列表
发布时间:2018-10-30

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

首先来到百词斩网站,这个网站是需要登录的,不过还好没验证码,我们可以先看下在登录过程中浏览器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())

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

接着,我们来分析下单词列表的页面:

当我们点击页码时,实际上是发送了GET请求。然后我们看Response,发现是个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"]

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

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

联系地址:南京市雨花台区花神大道23号京妆商务5幢505
咨询电话:025-86331019
授课课程:软件测试自动化全栈课程性能测试全栈课程
QQ交流群
官方微信公众号
扫码领取公开课视频
025-86331019
Copyright ©2014-2019 南京松勤网络科技有限公司 .All Rights Reserved
苏ICP备14047045号-1
本网站部分图片来源于网络,如有任何疑问请第一时间与我们联系,未经沟通本站不承担相关法律责任!