本文来源吾爱破解论坛
本帖最后由 zqc8 于 2019-10-12 19:13 编辑
本人是新手渣渣一枚,是第一次发帖,大佬路过别喷,欢迎大家帮我看看代码有什么地方可以改进优化的。本人学习爬虫也算有些时间了(也就一个月了左右),目前正在学习模拟登录,最近爬了个药智网(技术有限也就只能爬这种渣渣小网站了),现将代码分享给大家。
2019.10.12日更新:
1:自动抓取formhash值,不用手动查看了。
2:优化代码,去掉部分冗杂的成分。
代码全文如下:
[Python] 纯文本查看 复制代码
#测试网址:https://www.yaozh.com/ #测试账号:qq896944660 #初始密码:123456 #请各位同胞手下留情,玩耍完之后请将密码更改为初始密码,以便以下一位同胞也能地愉快玩耍!!!! import requests,re #抓取formhash值(登录表单需要) def get_formhash(login_url,headers): html = requests.get(login_url,headers=headers).text p_formhash = r'id="formhash" value="(.+)">' formhash = re.findall(p_formhash,html)[0] return formhash #登录与改密 def change_password(login_url,test_url,change_url,headers,formhash): #创建会话以保持登录状态 session = requests.session() name = input("请输入登录账号:") password_prompt = "请输入登录密码:" #密码提示语 while True: password = input(password_prompt) #登录账号所需要传输的数据 form_data = {} form_data["username"] = name form_data["pwd"] = password form_data["formhash"]= formhash form_data["backurl"] = "https%3A%2F%2Fwww.yaozh.com%2F" login_response = session.post(login_url,headers=headers,data=form_data) test_response = session.get(test_url,headers=headers) #test_response 用于验证是否登录成功。 #验证是否登录成功 if name in test_response.text: print("登录成功") while True: new_password = input("请输入新的登录密码:") re_password = input("请再次输入新的登录密码:") if new_password != re_password: print("两次密码输入结果不一致,请重新输入!") continue else: break #修改密码所所需要提交的数据。 change_password_data = {} change_password_data["nowpassword"] =password change_password_data["password"] = new_password change_password_data["repassword"] = re_password change_password_data["issub"] = 1 change_response = session.post(change_url,headers=headers,data=change_password_data) print("改密成功") break else: password_prompt = ("登录失败,请重新输入登录密码:") continue def main(): login_url = "https://www.yaozh.com/login" test_url = "https://www.yaozh.com/member/" change_url = "https://www.yaozh.com/member/uppwd/" headers = {} headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" formhash = get_formhash(login_url,headers) change_password(login_url,test_url,change_url,headers,formhash) if __name__ == "__main__": main()本帖被以下淘专辑推荐: · 源码系列|主题: 31, 订阅: 8
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: python获取电影天堂各版块电影
- 下一篇: python抖音多线程下载无水印视频