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实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
python验证码识别实例代码
Feb 03 Python
python如何修改装饰器中参数
Mar 20 Python
python3使用matplotlib绘制散点图
Mar 19 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
Mar 05 Python
Python类和实例的属性机制原理详解
Mar 21 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
如何利用python实现Simhash算法
Jun 28 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
Ajax PHP分页演示
2007/01/02 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python错误处理操作示例
2018/07/18 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python目录和文件处理总结详解
2019/09/02 Python
pycharm安装及如何导入numpy
2020/04/03 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
美国精油公司:Plant Therapy
2019/05/17 全球购物
学生操行评语大全
2014/04/24 职场文书
幼儿园课题方案
2014/06/09 职场文书
优质服务口号
2014/06/11 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
图文详解matlab原始处理图像几何变换
2021/07/09 Python
使用python创建股票的时间序列可视化分析
2022/03/03 Python