jaysonchou72 2024-09-22 19:27 采纳率: 0%
浏览 5

如何用PQ抓出post网页资料

最近想整理上市柜公司资料库,但官方提供的页面无法将全部资料(如上市/上柜/兴柜公司)透過PQ一次抓下来,但一直无法成功

https://mops.twse.com.tw/mops/web/t51sb01

语法如下,不知问题在那?

let

url="https://mops.twse.com.tw/mops/web/ajax_t51sb01%22,

headers=[#"Content-Type"="text/html; charset=UTF-8"],

content=Text.ToBinary("encodeURIComponent=1&step=1&firstin=1&TYPEK=sii&code=01"),

web=Web.Contents(url,[Headers=headers,Content=content])

in

web

  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-09-22 19:28
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的描述和问题,我理解您正在尝试使用Power Query (PQ) 从指定的网页抓取数据。在您提供的情境中,您似乎遇到了几个挑战。首先,网页可能需要特定的请求头或参数才能正确返回所需的数据。其次,由于您提到的是POST请求获取数据,直接使用Web.Contents可能不是最佳方式,因为它主要用于GET请求。以下是一些可能的解决方案和建议:

    1. 使用POST请求: 对于POST请求,您可能需要使用更复杂的工具或库来处理,因为Power Query本身可能不支持复杂的POST请求。但您可以尝试使用Power Query的HTTP客户端功能,并通过发送一个包含必要参数的表单数据来模拟POST请求。这涉及到在Power Query中使用自定义函数来处理HTTP请求和响应。如果您不熟悉自定义函数的使用,这可能是一项复杂的工作。
    2. 处理AJAX请求: 您提到的网页可能通过AJAX加载数据。在这种情况下,您可能需要使用开发者工具(如浏览器的开发者工具)来查看网络请求并获取实际的API端点或URL。一旦找到正确的URL和参数,您可以使用Power Query的Web.Contents函数来抓取这些数据。请注意,某些网站可能有反爬虫策略,因此直接抓取可能会受到限制或封禁。
    3. 使用第三方工具: 考虑使用专门的网页爬虫工具或库来处理复杂的POST请求和数据抓取任务。这些工具通常提供了更高级的API和功能来处理复杂的网络请求和数据解析。一旦您获取了所需的数据,您可以将其导入到Power BI中进行进一步的分析和处理。
    4. 检查URL和参数: 在您的代码中,确保URL是正确的,并且所有的参数都设置正确。有时网站的结构可能会发生变化,导致旧的URL或参数不再有效。此外,确保您的请求头是正确的,并且符合网站的要求。

    针对您的代码片段,我注意到URL中有一个双引号("),这可能是语法错误。请确保URL是正确的并且不包含不必要的字符或符号。此外,对于POST请求的参数(如“encodeURIComponent=...”等),您需要确保这些参数是网站期望接收的实际参数,并且格式正确。

    综上所述,处理复杂的网页抓取和数据抓取任务可能需要一些时间和耐心。建议您首先使用开发者工具来了解网站的结构和API要求,然后根据这些信息选择合适的工具和方法来抓取所需的数据。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月22日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见