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

 更新时间:2020年11月30日 09:35:47   作者:datehoer  
这篇文章主要介绍了python 爬虫网页登陆的简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

相信各位在写 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读取图片颜色值并生成excel像素画的方法实例

    python读取图片颜色值并生成excel像素画的方法实例

    这篇文章主要给大家介绍了关于python读取图片颜色值并生成excel像素画的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python利用memory_profiler查看内存占用情况

    Python利用memory_profiler查看内存占用情况

    memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。本文将利用memory_profiler查看代码运行占用内存情况,感兴趣的可以了解一下
    2022-06-06
  • Python实现多线程爬表情包详解

    Python实现多线程爬表情包详解

    这篇文章主要介绍了Python多线程爬表情包,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • 简单介绍Python中的round()方法

    简单介绍Python中的round()方法

    这篇文章主要介绍了简单介绍Python中的round()方法,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • python多线程爬取西刺代理的示例代码

    python多线程爬取西刺代理的示例代码

    这篇文章主要介绍了python多线程爬取西刺代理的示例代码,帮助大家更好的理解和学习python的爬虫,感兴趣的朋友可以了解下
    2021-01-01
  • el-table 多表格弹窗嵌套数据显示异常错乱问题解决方案

    el-table 多表格弹窗嵌套数据显示异常错乱问题解决方案

    使用vue+element开发报表功能时,需要列表上某列的超链接按钮弹窗展示,在弹窗的el-table列表某列中再次使用超链接按钮点开弹窗,以此类推多表格弹窗嵌套,本文以弹窗两次为例,需要的朋友可以参考下
    2023-11-11
  • Python3.x中自定义比较函数

    Python3.x中自定义比较函数

    这篇文章主要介绍了Python3.x中自定义比较函数,本文给出了自定义对象的比较、字典值value的比较实现方法,需要的朋友可以参考下
    2015-04-04
  • PyInstaller的安装和使用的详细步骤

    PyInstaller的安装和使用的详细步骤

    这篇文章主要介绍了PyInstaller的安装和使用的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • python自动化工具之pywinauto实例详解

    python自动化工具之pywinauto实例详解

    这篇文章主要为大家详细介绍了python自动化工具之pywinauto实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • python中注释用法简单示例

    python中注释用法简单示例

    注释即对程序代码的解释,在写程序时需适当使用注释,以方便自己和他人理解程序各部分的作用,下面这篇文章主要给大家介绍了关于python中注释用法的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论