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实现复杂对象转JSON的方法示例
Jun 22 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
使用python实现mqtt的发布和订阅
May 05 Python
Django用户认证系统 组与权限解析
Aug 02 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
Jul 02 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
python 基于DDT实现数据驱动测试
Feb 18 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开发中常用的字符串操作函数
2011/02/08 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
PHP中比较时间大小实例
2014/08/21 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
js闭包用法实例详解
2016/12/13 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
jQuery AJAX应用实例总结
2020/05/19 jQuery
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Python基于DES算法加密解密实例
2015/06/03 Python
python文件与目录操作实例详解
2016/02/22 Python
python如何定义带参数的装饰器
2018/03/20 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
python binascii 进制转换实例
2019/06/12 Python
python自动生成model文件过程详解
2019/11/02 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
酒店端午节促销方案
2014/02/18 职场文书
培训后的感想
2015/08/07 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL