Python实现爬取需要登录的网站完整示例


Posted in Python onAugust 19, 2017

本文实例讲述了Python爬取需要登录的网站实现方法。分享给大家供大家参考,具体如下:

import requests
from lxml import html
# 创建 session 对象。这个对象会保存所有的登录会话请求。
session_requests = requests.session()
# 提取在登录时所使用的 csrf 标记
login_url = "https://bitbucket.org/account/signin/?next=/"
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
payload = {
  "username": "<你的用户名>",
  "password": "<你的密码>",
  "csrfmiddlewaretoken": authenticity_token # 在源代码中,有一个名为 “csrfmiddlewaretoken” 的隐藏输入标签。
}
# 执行登录
result = session_requests.post(
  login_url,
  data = payload,
  headers = dict(referer=login_url)
)
# 已经登录成功了,然后从 bitbucket dashboard 页面上爬取内容。
url = 'https://bitbucket.org/dashboard/overview'
result = session_requests.get(
  url,
  headers = dict(referer = url)
)
# 测试爬取的内容
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print(bucket_names)

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python continue语句用法实例
Mar 11 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Django框架模板介绍
Jan 15 Python
python抓取需要扫微信登陆页面
Apr 29 Python
Python使用python-docx读写word文档
Aug 26 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
python中68个内置函数的总结与介绍
Feb 24 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 #Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 #Python
Python正则捕获操作示例
Aug 19 #Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 #Python
在java中如何定义一个抽象属性示例详解
Aug 18 #Python
python中将函数赋值给变量时需要注意的一些问题
Aug 18 #Python
python中子类调用父类函数的方法示例
Aug 18 #Python
You might like
php将数据库导出成excel的方法
2010/05/07 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
常用的javascript function代码
2008/05/23 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python 的类、继承和多态详解
2017/07/16 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
Python中的asyncio代码详解
2019/06/10 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
给医务人员表扬信
2014/01/12 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
财务会计求职信范文
2015/03/20 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python