为了账号安全,请及时绑定邮箱和手机立即绑定

黑板课爬虫闯关 - 第二关

标签:
Python 爬虫

第二关比较简单,只是在密码上一个一个循环即可,直接上代码,注意在传输数据时用到的请求方法是POST,其他的都比较基础,同样给出两种版本,可以参考

import re
import requests



if __name__ == '__main__':

    data = {'username': 'test'}

    url = 'http://www.heibanke.com/lesson/crawler_ex01/'

    for num in range(1, 31):
        data['password'] = num
        print(data)
        html = requests.post(url,data).content.decode('utf-8')
        result = re.findall('您输入的密码错误, 请重新输入', html)
        if result:
            print("错误")
        else:
            print('闯关成功,下一关网址是:http://www.heibanke.com' + re.findall('<a href="(.*?)" class', html)[0])
            break
import re
import requests
import time

def main():
    url = 'http://www.heibanke.com/lesson/crawler_ex01/'
    for psd in range(30):
        print(f'test password {psd}')
        r = requests.post(url, data={'username': 'test', 'password': psd})
        html = r.text
        if '密码错误' not in html:
            m = re.search('(?<=\<h3\>).*?(?=\</h3\>)', html)
            print(m.group())
            m = re.search('(\<).*?href="([^"]*?)".*?(\>下一关\</a\>)', html)
            print(f'下一关 http://www.heibanke.com{m.group(2)}')
            return
        else:
            time.sleep(1)


if __name__ == '__main__':
    main()
  • 更多代码详情参考我的Github
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消