以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据您提供的描述和问题,我理解您正在尝试使用Power Query (PQ) 从指定的网页抓取数据。在您提供的情境中,您似乎遇到了几个挑战。首先,网页可能需要特定的请求头或参数才能正确返回所需的数据。其次,由于您提到的是POST请求获取数据,直接使用Web.Contents可能不是最佳方式,因为它主要用于GET请求。以下是一些可能的解决方案和建议:
- 使用POST请求: 对于POST请求,您可能需要使用更复杂的工具或库来处理,因为Power Query本身可能不支持复杂的POST请求。但您可以尝试使用Power Query的HTTP客户端功能,并通过发送一个包含必要参数的表单数据来模拟POST请求。这涉及到在Power Query中使用自定义函数来处理HTTP请求和响应。如果您不熟悉自定义函数的使用,这可能是一项复杂的工作。
- 处理AJAX请求: 您提到的网页可能通过AJAX加载数据。在这种情况下,您可能需要使用开发者工具(如浏览器的开发者工具)来查看网络请求并获取实际的API端点或URL。一旦找到正确的URL和参数,您可以使用Power Query的Web.Contents函数来抓取这些数据。请注意,某些网站可能有反爬虫策略,因此直接抓取可能会受到限制或封禁。
- 使用第三方工具: 考虑使用专门的网页爬虫工具或库来处理复杂的POST请求和数据抓取任务。这些工具通常提供了更高级的API和功能来处理复杂的网络请求和数据解析。一旦您获取了所需的数据,您可以将其导入到Power BI中进行进一步的分析和处理。
- 检查URL和参数: 在您的代码中,确保URL是正确的,并且所有的参数都设置正确。有时网站的结构可能会发生变化,导致旧的URL或参数不再有效。此外,确保您的请求头是正确的,并且符合网站的要求。
针对您的代码片段,我注意到URL中有一个双引号("),这可能是语法错误。请确保URL是正确的并且不包含不必要的字符或符号。此外,对于POST请求的参数(如“encodeURIComponent=...”等),您需要确保这些参数是网站期望接收的实际参数,并且格式正确。
综上所述,处理复杂的网页抓取和数据抓取任务可能需要一些时间和耐心。建议您首先使用开发者工具来了解网站的结构和API要求,然后根据这些信息选择合适的工具和方法来抓取所需的数据。