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脚本和ADB命令实现卸载App
Feb 10 Python
Python编程之序列操作实例详解
Jul 22 Python
django上传图片并生成缩略图方法示例
Dec 11 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
python实现随机漫步算法
Aug 27 Python
Python  unittest单元测试框架的使用
Sep 08 Python
Python对象与引用的介绍
Jan 24 Python
Django中自定义查询对象的具体使用
Oct 13 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
python安装读取grib库总结(推荐)
Jun 24 Python
基于PyInstaller各参数的含义说明
Mar 04 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 文件上传类代码
2011/08/06 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
npm qs模块使用详解
2020/02/07 Javascript
python基于socket实现网络广播的方法
2015/04/29 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
python实现简易内存监控
2018/06/21 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
经典c++面试题三
2015/07/08 面试题
高校自主招生自荐信
2013/12/09 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
公司营业员的自我评价
2014/03/04 职场文书
学生逃课检讨书
2015/02/17 职场文书
新学期开学标语2015
2015/07/16 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫