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中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
Python与Redis的连接教程
Apr 22 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python实现ping指定IP的示例
Jun 04 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
python实现批量视频分帧、保存视频帧
May 31 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
python中比较两个列表的实例方法
Jul 04 Python
使用Python画出小人发射爱心的代码
Nov 23 Python
python对XML文件的操作实现代码
Mar 27 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 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
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
pandas分区间,算频率的实例
2019/07/04 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
员工拓展培训方案
2014/02/15 职场文书
三严三实对照检查材料
2014/08/25 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL