python 爬虫网页登陆的简单实现


Posted in Python onNovember 30, 2020

相信各位在写 python 爬虫的时候会在爬取网站时遇到一些登陆的问题,比如说登陆时遇到输入验证码比如说登录时遇到图片拖拽等验证,如何解决这类问题呢?一般有两种方案。

使用 cookie 登陆

我们可以通过使用 cookies 登陆,首先获取浏览器的 cookie,然后利用 requests 库直接登陆 cookie,服务器就会认为你是一个真实登陆用户,所以就会返回给你一个已登陆的状态,这个方法是很好用的,基本上绝大部分的需要验证码登录的网站都可以通过 cookie 登录来解决,

#! -*- encoding:utf-8 -*-
  import requests
  import random
  import requests.adapters

  # 要访问的目标页面
  targetUrlList = [
    "https://httpbin.org/ip",
    "https://httpbin.org/headers",
    "https://httpbin.org/user-agent",
  ]

  # 代理服务器
  proxyHost = "t.16yun.cn"
  proxyPort = "31111"

  # 代理隧道验证信息
  proxyUser = "username"
  proxyPass = "password"

  proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host": proxyHost,
    "port": proxyPort,
    "user": proxyUser,
    "pass": proxyPass,
  }

  # 设置 http和https访问都是用HTTP代理
  proxies = {
    "http": proxyMeta,
    "https": proxyMeta,
  }

  # 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
  s = requests.session()

  # 设置cookie
  cookie_dict = {"JSESSION":"123456789"}
  cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
  s.cookies = cookies

  for i in range(3):
    for url in targetUrlList:
      r = s.get(url, proxies=proxies)
      print r.text
若存在验证码,此时采用resp**e = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:

resp**e_captcha = requests_session.get(url=url_login, cookies=cookies)
resp**e1 = requests.get(url_login) # 未登陆
resp**e2 = requests_session.get(url_login) # 已登陆,因为之前拿到了Resp**e Cookie!
resp**e3 = requests_session.get(url_results) # 已登陆,因为之前拿到了Resp**e Cookie!

模拟登陆

这里不得不说一句老话,前人种树,后人乘凉,当时我想爬一下知乎盐选的文章,但是卡在了登陆这块,没想到搜索下来发现了一个模拟登陆的库,非常好用,不过本着好东西不分享防和谐的原则,就不在这里说了。

具体思路也就是通过 requests 来进行模拟登陆,然后返回一下验证码,之后传入验证码即可登陆成功了。

到此这篇关于python 爬虫网页登陆的简单实现的文章就介绍到这了,更多相关python 爬虫登陆内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python中的__init__和__new__
Mar 12 Python
Python FTP操作类代码分享
May 13 Python
Python实现合并字典的方法
Jul 07 Python
浅析Python中的for 循环
Jun 09 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python word转pdf代码实例
Aug 16 Python
Python3安装pip工具的详细步骤
Oct 14 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
Prometheus开发中间件Exporter过程详解
Nov 30 #Python
python实现猜拳游戏项目
Nov 30 #Python
Python解析微信dat文件的方法
Nov 30 #Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 #Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 #Python
Python 微信公众号文章爬取的示例代码
Nov 30 #Python
python爬虫工具例举说明
Nov 30 #Python
You might like
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
浅析PHP开发规范
2018/02/05 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python3 批量扫描端口的例子
2019/07/25 Python
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
运动会广播稿50字
2014/01/26 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
医德医风自我评价
2014/09/19 职场文书
个人务虚会发言材料
2014/10/20 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
总经理检讨书范文
2015/02/16 职场文书
公司年夜饭通知
2015/04/25 职场文书