通过黑板课爬虫游戏复习爬虫知识(第二关)

通过黑板课爬虫游戏复习爬虫知识(第二关)

第二关地址:
http://www.heibanke.com/lesson/crawler_ex01/

不难发现,其实他们关卡的url也是有规律的……

第二关相较于第一关,主要是在考察表单的提交
很尴尬的是 我测试的时候第一个数字就成功了……
所以代码采用的是‘!=’恭喜’’的状态
我的思路就是提交表单后读取文本,进行判断,一旦不符合条件,就继续执行,直到成功,输出的话考虑了直接返回url(get获取的那个)和返回密码数字

import requests
from lxml import etree

def second():
    url='http://www.heibanke.com/lesson/crawler_ex01/'
    point=''
    num=0
    while point!='恭喜':
        gurl = etree.HTML(requests.post(url,data={'username':'1','password':num}).text)
        get = gurl.xpath("//div[@class='col-xs-12 col-sm-10 col-md-8 col-lg-6']//h3")[0].text
        point=get[:2]
        num=num+1
        
    #get = gurl.xpath("//a/@href")[0]
    #print(get)
    print(num-1)

second()

但如果在未知结果的情况下,可以修改为

import requests
from lxml import etree

def second():
    url='http://www.heibanke.com/lesson/crawler_ex01/'
    num=0
    while num<30:
        gurl = etree.HTML(requests.post(url,data={'username':'1','password':num}).text)
        get = gurl.xpath("//div[@class='col-xs-12 col-sm-10 col-md-8 col-lg-6']//h3")[0].text
        if get!='您输入的密码错误, 请重新输入':
            break
        num=num+1
    get = gurl.xpath("//a/@href")[0]
    print(get)
    print(num)

second()

当然 有个小bug password输入非数字的时候会提示:
密码只有数字哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值