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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
浅谈Python中的闭包
Jul 08 Python
Python编程之string相关操作实例详解
Jul 22 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
Python实现时钟显示效果思路详解
Apr 11 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
Python字符串的常见操作实例小结
Apr 08 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
python实现低通滤波器代码
Feb 26 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
Python Selenium库的基本使用教程
Jan 04 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python实现的Iou与Giou代码
2020/01/18 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
办公室打字员岗位职责
2014/04/16 职场文书
建议书的格式
2014/05/12 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
四年级小学生评语
2014/12/26 职场文书
大学生操行评语大全
2014/12/31 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server