python day2-爬虫实现github登录
2019-08-13 08:35:37来源:博客园 阅读 ()
GitHub登录
分析登录页面
开发者工具分析请求
从session请求分析得知:
1.请求的URL为:https://github.com/session
2.该请求为post请求,即需要上传data表单,所以我们需要分析form-data
由form-data分析得知:
1.login:GitHub的账号
2.password:GitHub的密码
3.authenticity_token:每次请求时都发生变动
4.其余参数没有特殊的变动
因此需要分析authenticity_token的规律,经过分析源代码得知:
在login页面中存在该参数,且每次请求该页面时该参数都发生变动
因此我们需要使用维持会话的方式抓取该参数
import requests session = requests.Session() #实例化,维持会话 url_login = 'https://github.com/login' response = session.get(url_login) #通过正则获取token值 authenticity_token = re.findall('name="authenticity_token" value="(.*?)" />',response.text)[0] print(authenticity_token)
当我们获取该参数后,即可以代入form-data中完成登录
附上全部代码
import requests import re session = requests.Session() #实例化,维持会话 def token(): url_login = 'https://github.com/login' response = session.get(url_login) #通过正则获取token值 authenticity_token = re.findall('name="authenticity_token" value="(.*?)" />',response.text)[0] return authenticity_token #返回token值 def url_session(token): url = 'https://github.com/session' data = { 'commit': 'Sign in', 'utf8': '?', 'authenticity_token': token, #authenticity_token参数 'login': '输入账号', #你的账号 'password': '输入密码', #你的密码 'webauthn-support': 'supported', 'required_field_852e': '', 'timestamp': '1565616593723', 'timestamp_secret': '850cb01230466a48f29899e2202265961cdcde8375c4ee69399cd9e9805e1ede', } response = session.post(url,data=data) #传入form-data表单 return response.text #返回源码 def save_github(response_text): with open('github.html','w',encoding='utf-8') as fp: fp.write(response_text) if __name__ == '__main__': token = token() #获取authenticity_token参数 response_text = url_session(token) #获取网页源码 save_github(response_text) #把爬取到的源码保存为html格式
原文链接:https://www.cnblogs.com/interpreter/p/python_Github.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash