爬虫遇到需要登录的网站怎么解决

这篇具有很好参考价值的文章主要介绍了爬虫遇到需要登录的网站怎么解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在日常爬虫工作中我们会遇到这样需要先进行登录才能获取数据的网站,那在遇到这样的情况时我们需要怎么处理呢?今天我们就来简单的分享学习下爬虫对需要登录情况下得处理方式。
通常情况下,用户通过浏览器登录网站时,在特定的登录界面,输入个人登录信息,提交之后便能返回一个包含数据的网页。在浏览器层面的机制是,浏览器提交包含必要信息的http Request,服务器返回http Response。在运行爬虫过程中我们可以通过2种方式进行登录。
1、使用表单登陆
这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。

import requests
data = {'data1':'XXXXX', 'data2':'XXXXX'}
response = requests.post(url=url, data=data)

2、使用cookie进行登录
使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。因此,需要验证码的情况可以使用带验证码登陆的cookie解决。
Plain Text
复制代码

#! -*- encoding:utf-8 -*-
import requests
import random
import requests.adapters
# 要访问的目标页面
targetUrlList = [
"https://httpbin.org/ip",
"https://httpbin.org/headers",
"https://httpbin.org/user-agent",
]
# 代理服务器(产品官网 www.16yun.cn)
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

若存在验证码,此时采用response = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:
Plain Text
复制代码

response_captcha = requests_session.get(url=url_login, cookies=cookies)
response1 = requests.get(url_login) # 未登陆
response2 = requests_session.get(url_login) # 已登陆,因为之前拿到了Response Cookie!
response3 = requests_session.get(url_results) # 已登陆,因为之前拿到了Response Cookie!

这只是其中的两种登录方式,有其他解决爬虫登录问题方法的可以留言大家交流学习下。文章来源地址https://www.toymoban.com/news/detail-585729.html

到了这里,关于爬虫遇到需要登录的网站怎么解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学校wifi需要认证登录怎么解决

    一般学校都有校园网,就是认证类的WiFi,没有密码就可以连接的那种,但是连上不能上网,需要账号密码认证,一般都有几个或者10几个不同的校园网,这些校园网的来源一般都是学校安装的,或者校园网运营商安装的,有些废弃了就是无法正常认证使用了,但是又可以连接

    2024年02月07日
    浏览(74)
  • 解决每次eclipse拉取代码,提示登录,默认user为git,需要输入密码

    目录 1、如下图所示,每次拉取代码提示登录,用户名默认为git,不能修改,只能输入密码。 2、打开eclipse,选择Windows -Preferences,搜索框输入\\\"SSH\\\",并按照下图操作,点击生成rsa key,然后保存。 3、添加刚刚生成的秘钥,私钥文件到 eclipse。 4、复制刚刚生成的rd_rsa.pub文件里

    2024年02月02日
    浏览(41)
  • 设计师需要掌握的网站设计相关知识、技巧、工具以及在建站过程中遇到的常见问题和解决方案

    作者:禅与计算机程序设计艺术 “一个设计师的手册:关于网站设计的一切你需要知道”,本文全面系统地介绍了设计师需要掌握的网站设计相关知识、技巧、工具以及在建站过程中遇到的常见问题和解决方案,从基础知识到常用效果、细节调整、模板制作、SEO优化,都有详

    2024年02月06日
    浏览(42)
  • win10共享文件怎么设置账号密码访问,访问无法弹出登录窗口怎么解决

    环境:window10专业版 前情提要 笔者设置共享文件账号时遇到的问题:客户端访问报错“网络错误,Windows无法访问\\\\192.168.x.x你没有权限访问,请与网络管理员联系请求访问权限”,无法弹出账号密码登录窗口。 解决:客户端菜单查找“凭据管理器”--添加Windows凭据--输入共享

    2024年02月05日
    浏览(60)
  • java爬虫遇到网页验证码怎么办?(使用selenium模拟浏览器并用python脚本解析验证码图片)

            笔者这几天在爬取数据的时候遇到了一个很闹心的问题,就是在我爬取数据的时候遇到了验证码,而这个验证码又是动态生成的,尝试了很多方法都没能绕开这个验证码问题。         我的解决方案是:使用selenium模拟浏览器行为,获取到动态生成的验证码后用

    2024年02月09日
    浏览(57)
  • 什么是Python爬虫分布式架构,可能遇到哪些问题,如何解决

    目录 什么是Python爬虫分布式架构 1. 调度中心(Scheduler): 2. 爬虫节点(Crawler Node): 3. 数据存储(Data Storage): 4. 反爬虫处理(Anti-Scraping): 5. 分布式通信和协调(Communication and Coordination): Python爬虫分布式架构代码示例 1. 调度中心(scheduler.py): 2. 爬虫节点(crawl

    2024年02月10日
    浏览(33)
  • 在使用Python爬虫时遇到503 Service Unavailable错误解决办法汇总

    在进行Python爬虫的过程中,有时会遇到503 Service Unavailable错误,这意味着所请求的服务不可用,无法获取所需的数据。为了解决这个常见的问题,本文将提供一些解决办法,希望能提供实战价值,让爬虫任务顺利完成。 首先了解503 Service Unavailable错误 503 Service Unavailable错误是

    2024年02月14日
    浏览(25)
  • python 代码遇到 float division by zero 怎么解决?

    当我们在 Python 代码中进行除法运算时,可能会遇到 \\\"float division by zero\\\" 的错误。这种错误通常发生在除数为 0 时。在这篇文章中,我们将介绍如何避免和解决这个问题。 当我们尝试用一个浮点数除以 0 时,会得到一个 \\\"float division by zero\\\" 的错误。例如: 上述代码会导致以下

    2024年02月13日
    浏览(29)
  • 爬虫逆向实战(二十)--某99网站登录

    主页地址:某99网站 1、抓包 通过抓包可以发现登录接口是AC_userlogin 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”可以发现 txtPassword 和 aws 是加密参数 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无 1、看启动器 查看启动器发现有一个 NDUser_L

    2024年02月11日
    浏览(38)
  • 【网站收录前端需要怎么做?】

    要想知道前端怎么做,首先我们来先了解一下这个收录是什么: 网站收录是指搜索引擎将一个网站的信息加入到其数据库中,以便在用户搜索相关信息时能够显示该网站的相关内容。收录可以包括网站的主页、内部页面、图片、视频等内容。 一般来说,搜索引擎会通过网络

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包