如何从该表格内容中获取链接(我猜它是 javascript)? (不含硒)

Posted

技术标签:

【中文标题】如何从该表格内容中获取链接(我猜它是 javascript)? (不含硒)【英文标题】:How can I get the link from this table content (I guess it's javascript) ? (Without selenium) 【发布时间】:2020-02-01 00:24:05 【问题描述】:

我正在尝试从这些表格内容中获取 href,但在 html 代码中不可用。 [edited @ 3:44 pm 10/02/2019] 我会每天抓取这个网站和其他类似的网站,并与“昨天”的数据进行比较。所以我得到了这个数据中的每日新信息。 [/编辑]

我找到了一个类似(但更简单)的解决方案,但它使用 chromedriver (link)。我正在寻找不使用 Selenium 的解决方案。

网站:http://web.cvm.gov.br/app/esforcosrestritos/#/detalharOferta?ano=MjAxOQ%3D%3D&valor=MTE%3D&comunicado=MQ%3D%3D&situacao=Mg%3D%3D

如果您点击表格的第一部分(如下所示)

您将访问此站点: http://web.cvm.gov.br/app/esforcosrestritos/#/enviarFormularioEncerramento?type=dmlldw%3D%3D&ofertaId=ODc2MA%3D%3D&state=eyJhbm8iOiJNakF4T1E9PSIsInZhbG9yIjoiTVRFPSIsImNvbXVuaWNhZG8iOiJNUT09Iiwic2l0dWFjYW8iOiJNZz09In0%3D

如何抓取第一个站点以获取其在表格中的所有链接? (去第二个“链接”)

当我使用 requests.get 时,它甚至没有得到表格的内容。有什么帮助吗?

link_cvm = "http://web.cvm.gov.br/app/esforcosrestritos/#/detalharOferta?ano=MjAxOQ%3D%3D&valor=MTE%3D&comunicado=MQ%3D%3D&situacao=Mg%3D%3D"
import requests
html_code = requests.get(link_cvm)
html_code.text
print(html_code)

【问题讨论】:

这是一次性的吗?我之所以这么问,是因为您可以轻松地从 DevTools 的“网络”选项卡手动下载所有原始数据。 嗨@Ayman,不。我每天都会废弃这个网站和其他类似的网站,并与“昨天”的数据进行比较。所以我在这个数据中得到了每日的新信息。 仅供参考,它是 scrape(和 scrapescraperscraped)不是废品。 “废弃”意味着像垃圾一样扔掉:-( 【参考方案1】:

您进入的第二个页面是使用 jscript 动态加载的。您要查找的数据以 json 格式包含在另一个页面中。搜索一下,这方面的资料很多,for one, of many, example, see this。

在你的情况下,你可以通过这种方式得到它:

import requests
import json

url = 'http://web.cvm.gov.br/app/esforcosrestritos/enviarFormularioEncerramento/getOfertaPorId/8760'
resp = requests.get(url)

data = json.loads(resp.content)
print(data)

输出是该页面上的信息。

【讨论】:

Tks @JackFleeting 我需要的是获取这些第二页的链接。当我在第二页时,我可以获取数据。有什么想法吗? @FelipeRibeiro - 单击我的答案中的链接并阅读使用浏览器中的开发人员选项卡跟踪动态加载的数据。 感谢朋友。至少我看起来只是获取数据,而不是其他页面的“href”,至少这是我从您发送的示例中理解的。我做对了吗?非常感谢您的时间和耐心,最好的。 @FelipeRibeiro - 这不是一个简单的过程,所以你有很多东西要学......也试试这个:ianlondon.github.io/blog/web-scraping-discovering-hidden-apis。另外,不要忘记接受答案。 谢谢@Jack。我期待着去做。很复杂的想法。如果我找到其他解决方案,我会在这里发布。

以上是关于如何从该表格内容中获取链接(我猜它是 javascript)? (不含硒)的主要内容,如果未能解决你的问题,请参考以下文章

如何在网站上获取 Google 附加链接? [关闭]

如何根据 API 获取的内容创建列表 + 详细信息页面

MS Access |如何从邮件正文到表格获取内容?

上传文件后,如何在 Django 中使用 AJAX 更新表(与 JavaScript 链接)?

如何在 mongodb 中使用 $lookup 从该表中获取与另一个表连接的数据

vim剪贴板是堆栈吗?如果是,我如何粘贴从该堆栈复制的数据?