Python 请求 api 未获取表体内的数据

2023-12-22

我正在尝试废弃一个网页,以从请求响应返回的文本数据中获取表值。

</thead>
 <tbody class="stats"></tbody>
 <tbody class="annotation"></tbody>
 </table>
 </div>

实际上里面有一些数据tbody类,但“我无法使用请求访问该数据”。

这是我的代码

server = "http://www.ebi.ac.uk/QuickGO/GProtein"
header = {'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; 
rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'}
payloads = {'ac':'Q9BRY0'}
response = requests.get(server, params=payloads)

print(response.text)
#soup = BeautifulSoup(response.text, 'lxml')
#print(soup)

坦率地说,我开始对涉及硒等产品的常规刮擦失去兴趣,除此之外我不确定它是否有效。这种方法确实可以。

只有当您有多个文件需要下载时,您才会这样做,至少以这种形式。

>>> import bs4
>>> form = '''<form method="POST" action="GAnnotation"><input name="a" value="" type="hidden"><input name="termUse" value="ancestor" type="hidden"><input name="relType" value="IPO=" type="hidden"><input name="customRelType" value="IPOR+-?=" type="hidden"><input name="protein" value="Q9BRY0" type="hidden"><input name="tax" value="" type="hidden"><input name="qualifier" value="" type="hidden"><input name="goid" value="" type="hidden"><input name="ref" value="" type="hidden"><input name="evidence" value="" type="hidden"><input name="with" value="" type="hidden"><input name="source" value="" type="hidden"><input name="q" value="" type="hidden"><input name="col" value="proteinDB,proteinID,proteinSymbol,qualifier,goID,goName,aspect,evidence,ref,with,proteinTaxon,date,from,splice" type="hidden"><input name="select" value="normal" type="hidden"><input name="aspectSorter" value="" type="hidden"><input name="start" value="0" type="hidden"><input name="count" value="25" type="hidden"><input name="format" value="gaf" type="hidden"><input name="gz" value="false" type="hidden"><input name="limit" value="22" type="hidden"></form>'''
>>> soup = bs4.BeautifulSoup(form, 'lxml')
>>> action = soup.find('form').attrs['action']
>>> action 
'GAnnotation'
>>> inputs = soup.findAll('input')
>>> params = {}
>>> for input in inputs:
...     params[input.attrs['name']] = input.attrs['value']
...     
>>> import requests
>>> r = requests.post('http://www.ebi.ac.uk/QuickGO/GAnnotation', data=params)
>>> r
<Response [200]>
>>> open('temp.htm', 'w').write(r.text)
4082

如果您只需单击按钮,您就会收到下载的文件。

Chrome 浏览器的详细信息:

  • 在 Chrome 中打开该页面。
  • 右键单击“下载”链接。
  • 选择“检查”。
  • 在 Chrome 开发者菜单(靠近顶部)中选择“网络”,然后选择“全部”。
  • 单击页面中的“下载”。
  • --> 在新打开的窗口中单击“下载”。
  • “quickgoUtil.js:36”将出现在“启动器”列中。
  • 点击它。
  • 现在您可以通过单击“form.submit();”的行号来设置断点。
  • 再次点击“下载”;执行将在断点处暂停。
  • 在右侧窗口中注意“本地”。其内容之一是“形式”。您可以将其扩展为表单的内容。

你想要的outerHTML该元素的属性用于上面代码中使用的信息,即其action和名称-值对。 (以及使用 POST 的隐含信息。)

现在使用请求模块向网站提交请求。

这是其中的项目列表params如果您想提出其他要求。

>>> for item in params.keys():
...     item, params[item]
... 
('qualifier', '')
('source', '')
('count', '25')
('protein', 'Q9BRY0')
('format', 'gaf')
('termUse', 'ancestor')
('gz', 'false')
('with', '')
('goid', '')
('start', '0')
('customRelType', 'IPOR+-?=')
('evidence', '')
('aspectSorter', '')
('tax', '')
('relType', 'IPO=')
('limit', '22')
('col', 'proteinDB,proteinID,proteinSymbol,qualifier,goID,goName,aspect,evidence,ref,with,proteinTaxon,date,from,splice')
('q', '')
('ref', '')
('select', 'normal')
('a', '')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 请求 api 未获取表体内的数据 的相关文章

随机推荐

  • 自动将 ipython 输出为 pdf

    我有一个小程序 基本上可以进行各种统计计算并打印结果和图表 目前 获得程序的良好 pdf 输出的一种便捷方法是使用魔术命令 matplotlib inline 在 Jupyter IPython Notebook 中运行我的代码 并通过执行
  • Java 正则表达式,具有积极的向后展望和消极的向前展望

    我正在尝试从这种字符串中提取ou persons ou dc company dc org最后一个字符串立即之前是 a coma 没有跟随 在最后一种情况下 这应该给出dc company dc org 从正则表达式来看 这似乎是消极展望背
  • 在 git add 中显示更多上下文

    例如 使用 git diff 我可以执行以下操作 以在显示差异时显示 10 条周围的上下文行 git diff U10 我可以用 git add patch 做类似的事情吗 理想情况下我想 git add p U10 但我没有找到这样的选项
  • 启用 WhiteNoise 时“collectstatic”命令失败

    我正在尝试通过以下方式提供静态文件白噪声 https github com evansd whitenoise blob master docs django rst as per Heroku https devcenter heroku
  • 获取新的 Apple 设备令牌?

    我正在创建一个应用程序 允许用户注销该应用程序并根据需要以其他用户身份登录 新用户登录后 有什么方法可以从 Apple 获取新的设备令牌吗 有没有办法强制调用didRegisterForRemoteNotificationsWithDevi
  • 确定网络连接带宽(速度)wifi和移动数据

    我想要获取以 kbps 或 mbps 为单位的网络连接带宽 如果设备连接到 WiFi 那么它应该返回网络带宽 速度 以及移动数据 它将返回 wifi 能力速率 但我想要精确的数据传输速率 public String getLinkRate
  • 更改 recyclerView 项目背景 onClick?

    当我按下我的按钮时我就会做到这一点recyclerView这会改变它的背景颜色 这样按下的时候就会可见 但我不太喜欢android 所以我不知道该怎么做 我尝试过在网上找到的一些指南 但其中大多数对我不起作用 就像这样guide https
  • 如何使用 nunit 和 moq 进行异常处理?

    我正在尝试使用 nunits 新的异常处理方式 但我发现很难找到有关它的信息以及如何将它与最小起订量一起使用 我现在有最小起订量 它在模拟方法上抛出异常 但我不知道如何使用 nunit 来捕获它并查看它 有几种不同的方法可以做到这一点 我使
  • `with_items` 输出太冗长

    我编写了一个 ansible 任务来迭代设置列表 使用with items 现在 当我运行 ansible 时 我的所有设置都会被记录 它非常冗长 让人很难看出发生了什么 但是 如果我禁用所有输出no log 当特定项目失败时 我将无法识别
  • 使用 React 构建 CRM Web 资源

    我是新的 Dynamics CRM 我的项目包括表单提交和验证 我计划使用带有 Redux 前端的 React 和 CRM 的服务来构建一个产品 构建 CRM Web 资源的 CRM 最佳实践是什么 有人可以指导我吗 https githu
  • 如何使用 Flask 和 Celery 定期运行函数?

    我有一个烧瓶应用程序 大致如下所示 app Flask name app route methods POST def foo data json loads request data do some stuff return OK 现在另
  • 自定义龙目岛超级构建器

    我有一个父抽象类 Parent 和子类 Child 我正在使用 SuperBuilder 生成构建器 API 现在 我想对 Parent 和 Child 类的成员执行一些验证 作为构建的一部分 我找不到任何解决方案来自定义龙目岛超级构建器
  • 使用 C API 创建自定义类对象的 numpy 数组

    使用 C API 我想创建一个包含类型对象的 numpy 数组Quaternion 这是我用 C 编写的一个类 我已经有一个数组 实际上是一个std vector 并且我想制作一个副本 或者如果可能的话使用相同的内存 由于这不是基本类型 我
  • 在底部导航视图中不设置预先选择的项目

    我正在将材料设计库中的新底部导航视图添加到项目中 并且我希望默认情况下没有预先选择的项目 目前默认选择第一项 我用过 mBottomNavigation getMenu getItem 0 setChecked false 但是当在 for
  • 使用 CUDA 向量类型有优势吗?

    CUDA 提供内置矢量数据类型 例如uint2 uint4等等 使用这些数据类型有什么优点吗 假设我有一个由两个值 A 和 B 组成的元组 将它们存储在内存中的一种方法是分配两个数组 第一个数组存储所有 A 值 第二个数组存储与 A 值对应
  • Fluent NHibernate 映射 CompositeId 并使用 SetProjection 进行查询

    我有两个表 Section 和SectionList 它们通过多对多表 Membership 相关 由于多对多表中有一个额外的属性 我必须将其分解为自己的实体 public MembershipMap UseCompositeId With
  • 目标需要语言方言“CXX17”(带有编译器扩展),但 CMake 不知道用于启用它的编译标志

    所以我一直在尝试包括
  • 太阳黑子地理空间搜索错误:未知字段“location_ll”

    几天来我一直在尝试将地理空间搜索集成到我的 Rails 应用程序中 但是当我运行 rake sunspot solr reindex 时不断收到此错误 RSolr Error Http 400 Bad Request Error ERROR
  • Facebook 登录:“应用程序已禁用 Facebook 集成的 Oauth 客户端流程”

    我正在将 Facebook 登录与我的 Android 应用程序集成 当我登录时 它会向我显示消息 您的应用程序已禁用 Oauth 客户端流程 我的代码是这样的 package com example jiffy import java u
  • Python 请求 api 未获取表体内的数据

    我正在尝试废弃一个网页 以从请求响应返回的文本数据中获取表值 tbody class stats tbody tbody class annotation tbody 实际上里面有一些数据tbody类 但 我无法使用请求访问该数据 这是我的