地址:http://www.heibanke.com/lesson/crawler_ex03/
本关的难点是从页面解析并拼接出需要的目标密码,理解题目很重要啊~
另外获取密码的页面加载耗时很长,也需要考虑如何处理。
解题思路
首次进入题目页面,同样的跳转到了登录页面:
登录成功后,出现如下页面,发现还是猜密码。
但这次不是试出来的需要找出来,那从哪里找呢?先随便输入个密码
提示密码错误,同时给出了找密码的页面,继续访问:
初步观察,页面的表格中有两列,其中一列是密码的位置,另外一列是密码的值,猜测是将密码的值拼接成一个字符串,但是页面只有13
页,每页8个数值,正好100个数,而位置数最大的出现了100
,将这100个数放入到dict(location,value)
里,然后再对dict的key进行排序,对value进行拼接,不就得到密码了嘛。
然而现实是残酷的,发现密码的位置
中存在重复,也就是遍历完13页数据,并不能得到所有的密码值
,然后我就猜想是不是对没有出现在页面的位置进行填充0
处理,发现还是失败。
在多次试验中,发现每次获取到的密码的位置并不是相同的,也就是页面里的随机
的意思,也就是不断的调用查询密码列表页面,总是能够获取到所有密码的值
的。