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实现忽略大小写对字符串列表排序的方法
Sep 25 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
pandas数值计算与排序方法
Apr 12 Python
详解Python中的四种队列
May 21 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
python argparse模块通过后台传递参数实例
Apr 20 Python
Python验证码截取识别代码实例
May 16 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
详解python datetime模块
Aug 17 Python
Python的collections模块真的很好用
Mar 01 Python
Django实现翻页的示例代码
May 24 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
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
理解JS事件循环
2016/01/07 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
详解vue 组件注册
2020/11/20 Vue.js
解决python super()调用多重继承函数的问题
2019/06/26 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
python中reload重载实例用法
2020/12/15 Python
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
领导党性分析材料
2014/02/15 职场文书
租赁协议书范本
2014/04/22 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS