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 pandas替换指定数据的方法实例

    Python pandas替换指定数据的方法实例

    在处理数据的时候,很多时候会遇到替换的情况,下面这篇文章主要给大家介绍了关于Python pandas替换指定数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 超详细注释之OpenCV操作图像平移转换

    超详细注释之OpenCV操作图像平移转换

    这篇文章主要介绍了OpenCV操作图像平移转换,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • django使用JWT保存用户登录信息

    django使用JWT保存用户登录信息

    这篇文章主要介绍了Django使用jwt获取用户信息的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • python基础之并发编程(三)

    python基础之并发编程(三)

    这篇文章主要介绍了详解python的并发编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • python监控进程脚本

    python监控进程脚本

    这篇文章主要为大家详细介绍了python监控进程脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 浅谈python的dataframe与series的创建方法

    浅谈python的dataframe与series的创建方法

    今天小编就为大家分享一篇浅谈python的dataframe与series的创建方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Window 64位下python3.6.2环境搭建图文教程

    Window 64位下python3.6.2环境搭建图文教程

    这篇文章主要为大家详细介绍了Window 64位下python3.6.2环境搭建图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • python实现发送form-data数据的方法详解

    python实现发送form-data数据的方法详解

    这篇文章主要介绍了python实现发送form-data数据的方法,结合实例形式分析了Python发送form-data数据的相关操作步骤、实现方法与注意事项,需要的朋友可以参考下
    2019-09-09
  • Python 中打印字典中的所有键值对的示例详解

    Python 中打印字典中的所有键值对的示例详解

    这篇文章主要介绍了Python输出字典的键和值,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Pandas数据分组统计的实现示例

    Pandas数据分组统计的实现示例

    对数据进行分组统计,主要适用DataFrame对象的groupby()函数,本文就来详细的介绍下Pandas数据分组统计的实现,具有一定的参考价值,感兴趣的可以了解下
    2023-11-11

最新评论