如何Python请求像我的浏览器一样跟随URL

2024-03-19

我注意到 Python 的 requests 库并不像我的浏览器那样遵循某些 URL 重定向。

例如,当我这样做时:

response = requests.get('http://www.bbmt.org/', verify=False, allow_redirects=True)

最终的网址是

然而,在我的浏览器中,我最终被重定向回http://www.bbmt.org/ http://www.bbmt.org/.

在这些情况下,有没有办法让请求的行为像我的浏览器一样?


里面的重定向https://secure.jbs.elsevierhealth.com是一个 JavaScript 重定向。
您可以在源代码中看到它:

window.location.href = "http://www.bbmt.org/action/consumeSharedSessionAction?SERVER=WZ6myaEXBLHj3ZzqSv9HPw%3D%3D&MAID=IBS8Eq6B1iRWhf2ywTW5pg%3D%3D&JSESSIONID=aaa8eY-zM394XcPptT_Kv&ORIGIN=670572791&RD=RD";

您需要运行 javascript 才能执行此重定向(这是请求不会执行的操作)。

如果您需要针对此特定重定向的解决方案,您可以解析响应的内容(在 python 中)并获取该特定重定向URL并用它来创建一个新的请求。

如果您需要通用解决方案 - 您将需要使用无头浏览器来做到这一点。你可以找到这个问题的更多信息 https://stackoverflow.com/questions/6025082/headless-browser-for-python-javascript-support-required.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何Python请求像我的浏览器一样跟随URL 的相关文章

  • 防止脚本目录被添加到Python 3中的sys.path

    有没有办法阻止脚本的目录被添加到python3中的sys path 由于导入在 python 中是相对的 因此我遇到了导入冲突 我正在处理的一个遗留项目有一个名为logger py在与内置冲突的脚本的根目录中logger 我使用的自定义构建
  • 有没有办法清理 jinja2 生成的 html?

    我们使用 jinja2 来创建 html 但是 由于我们在 jinja 中执行许多循环和其他操作来生成 html 所以 html 看起来 很丑 注意 这只是为了美观 我们可以做些什么来清理 html 吗 除了清理我们的 jinja2 代码之
  • AttributeError:模块“pandas”没有属性“read_csv”Python3.5

    我已经成功使用pandas read csv很久以来 当我尝试读取 csv 文件时 突然开始出现错误 df pd read csv file csv encoding utf 8 错误是 AttributeError module pand
  • 具有相同内容的拆分列表

    例如我有以下列表 contents i have two pens prices 5 made in and 我想将它们分开 使其具有与以下内容相同的内容 array 0 i have two pens array 1 prices 5 a
  • QTextEdit.find() 在 Python 中不起作用

    演示问题的简单代码 usr bin env python import sys from PyQt4 QtCore import QObject SIGNAL from PyQt4 QtGui import QApplication QTe
  • 根据两个预先计算的直方图报告两个样本的 K-S 统计量

    Problem 在这里 我绘制了存储在文本文件中的 2 个数据集 在列表中 dataset 每个包含 218 亿个数据点 这使得数据太大而无法作为数组保存在内存中 我仍然能够将它们绘制为直方图 但我不确定如何通过2 样本KS测试 http
  • Scrapy 未通过请求回调从项目中的已抓取链接返回附加信息

    基本上 下面的代码会抓取表格的前 5 项 其中一个字段是另一个 href 单击该 href 会提供更多信息 我想收集这些信息并将其添加到原始项目中 所以parse应该将半填充的项目传递给parse next page然后刮掉下一位并返回完成
  • SQLAlchemy - 如何使用 SQLAlchemy 做出“django 选择”?

    在 Django 中 我们可以使用非常简单的 选择 例如 GENDER CHOICES M Male F Female class Foo models Model gender models CharField max length 1
  • 使用 scikit 包在 Python 中绘制集群区域的边界

    这是我处理 3 个属性 x y 值 中的数据聚类的简单示例 每个样本代表其位置 x y 及其所属变量 我的代码发布在这里 x np arange 100 200 1 y np arange 100 200 1 value np random
  • python 没有名为serial的模块

    我的 python 程序有问题 我编写了程序来将数据 温度 从 arduino 获取到我的树莓派 sqlite 数据库 但它在第 4 行 导入串行 处给了我一个错误 提示 ImportError 没有名为串行的模块 我使用 python3
  • Jupyter 笔记本中未显示绘图

    我正在尝试为 Anscombe 数据集创建 2x2 图 加载数据集并分离数据集中的每个类 import seaborn as sns import matplotlib pyplot as plt anscombe sns load dat
  • 在 Python 中快速确定小于 10 亿的数字是否为素数

    我目前在 python 中检查数字素数的算法对于 1000 万到 10 亿之间的数字来说速度很慢 我希望它能够得到改进 因为我知道我永远不会得到超过 10 亿的数字 背景是我无法获得足够快的实现来解决项目 Euler 的问题 60 我在 7
  • 用于 OAuth 身份验证的 WSGI 中间件

    我使用构建了一个非常小的网络应用程序Flask http flask pocoo org 现在我想向网站添加非常基本的身份验证 我不需要授权 由于 Flask 不支持开箱即用的 auth auth 我想插入 WSGI 中间件来完成这项工作
  • Tornado:DummyFuture 不支持结果阻塞

    我试图获得一个非常简单的初始服务器 它可以 异步 获取 url 来工作 但它会抛出 Exception DummyFuture does not support blocking for results 有这个SO https stacko
  • Python range() 和 zip() 对象类型

    我了解功能如何range and zip 可以在 for 循环中使用 然而我期望range 输出一个列表 很像seq在 Unix shell 中 如果我运行以下代码 a range 10 print a 输出是range 10 表明它不是一
  • 如何配置应用程序中的所有记录器

    Python 的日志记录模块允许模块或类定义自己的记录器 不同的记录器可以有不同的处理程序 其中一些可能选择记录到文件 而另一些则选择记录到标准输出 现在 我的应用程序使用其中几个模块 每个模块都有自己的记录器 这些记录器具有各种处理程序
  • 如何在 VS Code 宏中将焦点返回到编辑器,将 Python 文本发送到调试控制台?

    我尝试按键绑定宏以将 python 文本发送到调试控制台并将焦点返回到 Visual Studio Code 中的编辑器 这是我尝试过的 安装了vscode python https marketplace visualstudio com
  • 使用 MinGW 链接到 Python

    我不想创建一个嵌入Python解释器的跨平台程序 并用MinGW编译它 但是 Python 二进制发行版没有提供 MinGW 链接的库 仅python32 lib对于 Visual C 并且 Python 源包不提供使用 MinGW 编译的
  • 类型提示:解决循环依赖

    以下产生NameError name Client is not defined 我该如何解决 class Server def register client self client Client pass class Client de
  • 从受密码保护的 Excel 文件到 pandas DataFrame

    我可以使用以下命令打开受密码保护的 Excel 文件 import sys import win32com client xlApp win32com client Dispatch Excel Application print Exce

随机推荐

  • 如何(策略)以 BDD 风格对属性(获取/设置)进行单元测试?

    我有一个 很多 类具有属性 有些有逻辑 有些则没有 假设我想测试这些属性 我该怎么做呢 最近 我对用于创建单元测试的 BDD 风格很感兴趣 see here http iridescence no post Extending xUnit
  • ASP.NET 身份 cookie 和子域

    我正在尝试跨子域共享我的 ASP NET Identity cookie 目前只是本地 sub1 domain local 子2 域 本地 我有相同的机器密钥在两个站点上 但在 sub1 上创建的 cookie 不会在 sub2 上验证 反
  • 如何让StatusBar透明?

    有谁知道如何使用 React Native 使 Android 状态栏透明 不是半透明的 是透明的 我也在使用反应导航 就像这样使用它 测试使用 react native 0 60 4 和 0 61 5
  • ASP.NET MVC 列表框处理所选项目事件

    我在视图中使用 HTML ListBox 如下所示 这是用 IEnumerable 填充的
  • Objective-C - 测试对象实例被释放/释放

    有某种方法可以测试 Objective C 实例是否被释放 释放 保留计数 0 例如 对象 A 有一个指向对象 B 的引用 指针 但对象 B 可以在内存低级别中释放 我如何测试引用 B 以确保它已被释放 interface A NSObje
  • Base64 长度(以字节为单位)是多少?

    我有一个以 Base64 编码的文件 具有一定的文件长度 如何获取以字节为单位的大小 Example var size canvas toDataURL console log resizeCanvasURL length gt 13278
  • Android 6.0 原生 tgkill 崩溃

    从今天开始我就遇到了本地崩溃 据报道仅适用于Android 6 0 与堆栈跟踪 native pc 0000000000049c34 system lib libc so tgkill 12 native pc 00000000000474
  • 将 ODBC 应用程序与 JDBC 驱动程序结合使用

    我公司使用Vertica http www vertica com 我们有使用 pyodbc 连接到它的 Python 应用程序 我的大部分开发工作都是在 Mac Snow Leopard 上进行 不幸的是 Vertica 尚未发布适用于
  • 模拟 Retrofit 响应调用,但 Call 不起作用

    我正在嘲笑 APIService 的响应 不幸的是 它不起作用 我必须回电 但我不明白如何做 问题是如何发回 Call 对象 RunWith AndroidJUnit4 class class ApiServiceTest Test fun
  • 如何使用 API Gateway 上传 xls/xlsx 文件并将文件数据发送到 lambda 函数?

    我是 lambda 和 API 网关的新手 我使用此服务做了一些简单的事情 但现在我有一个要求 用户可以上传 Excel 文件 上传过程只是触发与 lambda 函数集成的 API 网关端点 我不想保存文件 我只想将文件数据以 CSV JS
  • 如何检查实体框架类型的属性是否可为 Null

    我有一个从数据库生成的 EntityDataModel 其中一个实体模型有两个属性 它们都是字符串类型 一个是 Nullable True 另一个是 Nullable False 如何在运行时检查 Nullable 属性的值 如果您的属性装
  • 如何从 Swagger API 声明生成 JSON-Schema

    我有 Swagger API 声明 用于使用招摇 v 1 2 https github com wordnik swagger spec blob master versions 1 2 md 我对 Swagger 的最初感觉是它非常接近
  • SQL Server - 同义词提示和技巧? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在xamarin表单中移动右侧搜索栏的搜索图标

    如何在 Xamarin 表单中移动右侧搜索栏的搜索图标 我正在寻找安卓和IOS 对于 Android 我使用了 SearchBarRenderer 下面的代码不起作用 有人知道该怎么做吗 请帮忙 protected override voi
  • 如何在AngularJS中创建全局变量

    我遇到这个问题 当您注册时 您会进入 用户 页面 它应该说 欢迎 用户名没有出现在网页上 原因我不确定 请帮助这里是plunkr http plnkr co edit qB3Gkeq5ji1YQyy0kpGH p preview http
  • 如何在Python中找到素数

    我是Python新手 我正在尝试计算给定范围内的素数 开发者分享的一些答案如下 import math def count primes num out for i in range 3 num 2 if all i j 0 for j i
  • 如何使用车把模板显示json对象键和值?

    我已经开始学习handlebar js 我正在努力显示 json 数据 我的 json 看起来像这样 var data record1 first name john city newyork name brit
  • CMPXCHG16B 正确吗?

    尽管我不确定为什么 但这似乎并不完全正确 建议会很好 因为 CMPXCHG16B 的文档非常少 我没有任何英特尔手册 template lt gt inline bool cas volatile types uint128 t src t
  • 使用 netbeans 中另一个 jFrame 的按钮关闭 jFrame?

    我在 netbeans 中创建了两个 jFrame 第一个被命名为MainFrame另一个是ExternalFrame 每个都有一个按钮 单击按钮MainFrame将设置ExternalFrame可见与MainFrame仍然在屏幕上 我想处
  • 如何Python请求像我的浏览器一样跟随URL

    我注意到 Python 的 requests 库并不像我的浏览器那样遵循某些 URL 重定向 例如 当我这样做时 response requests get http www bbmt org verify False allow redi