zoukankan      html  css  js  c++  java
  • python 黑板课爬虫闯关-第三关

    import re
    import requests
    import time
    
    
    def main():
        # 访问第三关,需要登录,登录的url
        url_login = 'http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex02/'
        # 登录成功后,访问第三关url
        url = 'http://www.heibanke.com/lesson/crawler_ex02/'
        session = requests.Session()
        # 获取cookie
        session.get(url_login)
        # 获取csrftoken
        token = session.cookies['csrftoken']
    
        # 将用户名密码和csrftoken一起提交给登录页面
        session.post(url_login, data={'csrfmiddlewaretoken': token, 'username': 'tianlegg', 'password': '123456'})
        # 登录成功后,携带了token再来访问页面会看到第三关内容,和第二关一样,只不过每次提交时同样需要带着csrftoken,否则还是会报错
        for psd in range(30):
            print(f'test password {psd}')
            session.get(url)
            token = session.cookies['csrftoken']
            r = session.post(url, data={'csrfmiddlewaretoken': token, 'username': 'aa', '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()
  • 相关阅读:
    基于MINA实现server端心跳检测(KeepAliveFilter)
    TCP的TIME_WAIT快速回收与重用
    HDU4183 起点到终点再到起点 除起点每点仅经过一次 网络流
    oracle union 注入工具
    sqlmap注入技巧收集
    sqlmap的一些小技巧
    FCKeditor漏洞利用
    WAF绕过的技巧
    杨辉三角
    Oracle 常用入侵命令
  • 原文地址:https://www.cnblogs.com/tianleblog/p/11672710.html
Copyright © 2011-2022 走看看