แชร์ผ่าน


การแก้ไขปัญหาตัวเชื่อมต่อเว็บ

อะไรคือความแตกต่างระหว่าง Web.Contents, Web.BrowserContents และ Web.Page

Web.Contents

  • Web.Contents ใช้สําหรับเรียกข้อมูลเนื้อหาเว็บที่ไม่จําเป็นต้องเข้าถึงผ่านเบราว์เซอร์ เช่น ไฟล์ CSV, ผลลัพธ์ JSON API และอื่นๆ
  • สนับสนุนตัวเลือกการรับรองความถูกต้องที่หลากหลายที่สุด
  • ซึ่งสามารถใช้ในสภาพแวดล้อมระบบคลาวด์ เช่น Power Query Online โดยไม่มีเกตเวย์

Web.Page

  • Web.Page เป็นฟังก์ชันดั้งเดิมสําหรับการดึงข้อมูลเนื้อหาเว็บที่จําเป็นต้องเข้าถึงผ่านเบราว์เซอร์ เช่น หน้า HTML
  • ซึ่งสร้างขึ้นบน Internet Explorer เนื่องจากข้อกําหนดนี้ จึงถูกแทนที่ใน UI ด้วยWeb.BrowserContents อย่างไรก็ตาม Web.Page จะยังคงพร้อมใช้งานที่ระดับกลไกจัดการสําหรับความเข้ากันได้ย้อนหลัง
  • จําเป็นต้องใช้เกตเวย์ในสภาพแวดล้อมระบบคลาวด์ เช่น Power Query Online

Web.BrowserContents

  • Web.BrowserContents เป็นฟังก์ชันที่อัปเดตสําหรับการดึงข้อมูลเนื้อหาเว็บที่จําเป็นต้องเข้าถึงผ่านเบราว์เซอร์ เช่น เพจ HTML
  • ใน UI Web.BrowserContents จะแทนที่ Web.Pageเนื่องจาก Web.Page ขึ้นอยู่กับ Internet Explorer
  • Web.BrowserContents ถูกสร้างขึ้นครั้งแรกบน Chromium แต่ตอนนี้ใช้ตัวควบคุม WebView2 ของ Microsoft Edge
  • จําเป็นต้องใช้เกตเวย์ในสภาพแวดล้อมระบบคลาวด์ เช่น Power Query Online

ตารางต่อไปนี้สรุปความแตกต่าง

Web.Contents Web.Page Web.BrowserContents
เนื้อหาที่ไม่ใช่เบราว์เซอร์ (ไฟล์ .txt/.csv, JSON และอื่นๆ) X
เนื้อหาของเบราว์เซอร์ (HTML) X X
ชนิดการรับรองความถูกต้องที่ได้รับการสนับสนุน ไม่ระบุชื่อ
Windows
พื้นฐาน
API สำหรับเว็บ
บัญชีองค์กร
ไม่ระบุชื่อ
Windows (ข้อมูลประจําตัวของผู้ใช้ปัจจุบันเท่านั้น)
API สำหรับเว็บ
ไม่ระบุชื่อ
Windows
พื้นฐาน
API สำหรับเว็บ
จําเป็นต้องใช้เกตเวย์ในโฮสต์บนคลาวด์ N Y Y
ในขณะนี้สร้างขึ้นโดย โฮสต์ทั้งหมด Excel และ Power Query Online Power BI Desktop
สร้างขึ้นบน .NET Internet Explorer ตัวควบคุม WebView2 ของ Microsoft Edge

หมายเหตุ

สามารถส่งคําขอ POST ได้โดยไม่ระบุชื่อเท่านั้นเมื่อใช้Web.Contents

คําเตือน "เบราว์เซอร์นี้ไม่รองรับอีกต่อไป" ในมุมมองเว็บ

เมื่อนําเข้าเว็บเพจ คุณสามารถดูตัวอย่างของหน้าได้โดยใช้ แท็บ มุมมอง เว็บ ในกล่องโต้ตอบตัวนําทางของ Power Query การแสดงตัวอย่างนี้ในบางครั้งอาจแสดงคําเตือนเช่น "เบราว์เซอร์นี้ไม่ได้รับการสนับสนุนอีกต่อไป" เมื่อเกิดสิ่งนี้ขึ้น โดยปกติจะเป็นเพราะมุมมองเว็บในขณะนี้แสดงตัวอย่างมุมมองเว็บโดยใช้ Internet Explorer ซึ่งบางเว็บไซต์ไม่รองรับอีกต่อไป อย่างไรก็ตาม การดําเนินการนี้มีผลต่อมุมมองเว็บเท่านั้น และไม่มีผลต่อตัวเชื่อมต่อเว็บเอง ตราบใดที่คุณกําลังใช้ตัวเชื่อมต่อที่ยึด ตาม Web.Contents หรือ Web.BrowserContents (และไม่ Web.Page) คุณสามารถละเว้นคําเตือนดังกล่าวได้อย่างปลอดภัย โปรดดู ข้อแตกต่างระหว่าง Web.Contents, Web.BrowserContents และ Web.Page คืออะไร สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเชื่อมต่อเว็บต่าง ๆ และเทคโนโลยีพื้นฐานของตัวเชื่อมต่อเหล่านั้น

การจัดการเว็บเพจแบบไดนามิก

เว็บเพจที่โหลดเนื้อหาแบบไดนามิกอาจจําเป็นต้องใช้การจัดการพิเศษ หากคุณสังเกตเห็นข้อผิดพลาดเป็นระยะในคิวรี่เว็บของคุณ อาจเป็นไปได้ว่า คุณกําลังพยายามเข้าถึงเว็บเพจแบบไดนามิก ตัวอย่างที่พบบ่อยของข้อผิดพลาดประเภทนี้คือ:

  1. คุณรีเฟรชคิวรีที่เชื่อมต่อกับไซต์
  2. คุณเห็นข้อผิดพลาด (ตัวอย่างเช่น "ไม่พบคอลัมน์ 'Foo' ของตาราง")
  3. คุณรีเฟรชคิวรีอีกครั้ง
  4. ไม่มีข้อผิดพลาดเกิดขึ้น

ชนิดของปัญหาเหล่านี้มักจะเกิดจากการกําหนดเวลา ในบางครั้งหน้าที่โหลดเนื้อหาของตนเองอาจไม่สอดคล้องกันเนื่องจากเนื้อหาสามารถเปลี่ยนแปลงได้หลังจากที่เบราว์เซอร์พิจารณาว่าการโหลดเสร็จสมบูรณ์ บางครั้งตัวเชื่อมต่อเว็บจะดาวน์โหลด HTML หลังจากโหลดเนื้อหาแบบไดนามิกทั้งหมดแล้ว ในบางครั้งการเปลี่ยนแปลงจะยังคงอยู่ในระหว่างดําเนินการเมื่อดาวน์โหลด HTML ซึ่งนําไปสู่ข้อผิดพลาดเป็นระยะ ๆ

โซลูชันคือการใช้ตัวเลือกของ WaitForWeb.BrowserContents ซึ่งระบุตัวเลือกหรือระยะเวลาที่ควรรอก่อนดาวน์โหลด HTML

คุณจะทราบได้อย่างไรว่าหน้านั้นเป็นแบบไดนามิกหรือไม่ โดยปกติแล้วมันค่อนข้างง่าย เปิดหน้าในเบราว์เซอร์และดูการโหลด หากเนื้อหาปรากฏขึ้นทันที จะเป็นหน้า HTML ปกติ ถ้าปรากฏแบบไดนามิกหรือเปลี่ยนแปลงเมื่อเวลาผ่านไป หน้านี้เป็นหน้าแบบไดนามิก

การใช้เกตเวย์กับตัวเชื่อมต่อเว็บ

ทั้ง Web.BrowserContents และ Web.Page จําเป็นต้องใช้เกตเวย์ข้อมูลภายในองค์กรเมื่อเผยแพร่ไปยังบริการระบบคลาวด์ เช่น แบบจําลองความหมายของ Power BI หรือกระแสข้อมูล หรือกระแสข้อมูล Power Apps (ปัจจุบัน Dynamics 365 Customer Insights ไม่สนับสนุนการใช้เกตเวย์)

ถ้าคุณกําลังใช้ Web.Page และได้รับข้อผิดพลาด Please specify how to connect ตรวจสอบให้แน่ใจว่าคุณมี Internet Explorer 10 หรือใหม่กว่าติดตั้งอยู่บนเครื่องที่โฮสต์เกตเวย์ข้อมูลภายในองค์กรของคุณ

หากคุณกําลังใช้ Web.BrowserContents และได้รับ We were unable to find the WebView2 runtime ข้อผิดพลาด ให้ตรวจสอบให้แน่ใจว่าคุณมีรันไทม์ WebView2 ติดตั้งอยู่บนเครื่องที่โฮสต์เกตเวย์ข้อมูลภายในองค์กรของคุณ ข้อความแสดงข้อผิดพลาดควรมีลิงก์ไปยังตัวติดตั้งรันไทม์ WebView2 ถ้าคุณได้ติดตั้งรันไทม์แล้ว แต่ยังคงเห็นข้อผิดพลาดอยู่ ตรวจสอบให้แน่ใจว่าบัญชีของบริการเกตเวย์ (โดยปกติแล้ว PBIEgwService) สามารถเข้าถึงตําแหน่งที่ตั้งของรันไทม์ WebView2 (ตัวอย่างเช่น C:\Program Files (x86)\Microsoft\EdgeWebView)

ข้อผิดพลาด "เราพบข้อผิดพลาดเมื่อเริ่มต้นเว็บเบราว์เซอร์" เมื่อใช้ Web.BrowserContents

ข้อผิดพลาดนี้สามารถเกิดขึ้นได้ถ้ากระบวนการที่เรียกใช้ Web.BrowserContents กําลังทํางานในโหมดยกระดับ เนื่องจาก WebView2 ในขณะนี้ไม่สนับสนุนการเรียกใช้ด้วยสิทธิ์ระดับผู้ดูแลระบบ

การใช้ Web.Page แทน Web.BrowserContents

ในกรณีที่คุณจําเป็นต้องใช้ Web.Page แทน Web.BrowserContentsคุณยังคงสามารถใช้ Web.Pageด้วยตนเองได้

ใน Power BI Desktop คุณสามารถใช้ฟังก์ชันที่เก่ากว่า Web.Page ด้วยการ ล้างตัวเลือก การอนุ มานเปิดใช้งานตารางเว็บ:

  1. ภายใต้แท็บ ไฟล์ เลือก ตัวเลือกและการตั้งค่า>ตัวเลือก

  2. ในส่วนส่วนกลาง ให้เลือกตัวแก้ไข Power Query

  3. ล้างตัวเลือก การอนุมานเปิดใช้งานตารางเว็บ จากนั้นเลือก ตกลง

  4. รีสตาร์ต Power BI Desktop

    หมายเหตุ

    ในปัจจุบัน คุณไม่สามารถปิดการใช้ Web.BrowserContents ใน Power BI Desktop ที่ปรับให้เหมาะสมสําหรับเซิร์ฟเวอร์รายงาน Power BI ได้

คุณยังสามารถรับสําเนาของ Web.Page คิวรีจาก Excel ได้อีกด้วย วิธีการคัดลอกโค้ดจาก Excel:

  1. เลือก จากเว็บ จากแท็บ ข้อมูล
  2. ใส่ที่อยู่ในกล่องโต้ตอบ จากเว็บ จากนั้นเลือก ตกลง
  3. ในตัวนําทาง ให้เลือกข้อมูลที่คุณต้องการโหลด จากนั้นเลือก แปลงข้อมูล
  4. ในแท็บ หน้าแรก ของ Power Query ให้เลือก เครื่องมือแก้ไขขั้นสูง
  5. ในเครื่องมือแก้ไขขั้นสูง ให้คัดลอกสูตร M
  6. ในแอปที่ใช้ Web.BrowserContentsเลือกตัว เชื่อมต่อคิวรี่ ว่างเปล่า
  7. ถ้าคุณกําลังคัดลอกไปยัง Power BI Desktop:
    1. ในแท็บ หน้าแรก ให้เลือก เครื่องมือแก้ไขขั้นสูง
    2. วางคิวรีที่Web.Pageคัดลอกในตัวแก้ไข จากนั้นเลือก เสร็จสิ้น
  8. ถ้าคุณกําลังคัดลอกไปยัง Power Query Online:
    1. ใน คิวรี่ว่างเปล่า ให้วางคิวรี่ที่ Web.Page คัดลอกไว้ในคิวรี่ว่างเปล่า
    2. เลือกเกตเวย์ข้อมูลภายในองค์กรที่จะใช้
    3. เลือก ถัดไป

คุณยังสามารถป้อนรหัสต่อไปนี้ลงในคิวรี่ว่างเปล่าได้ด้วยตนเอง ตรวจสอบให้แน่ใจว่าคุณใส่ที่อยู่ของเว็บเพจที่คุณต้องการโหลด

let
  Source = Web.Page(Web.Contents("<your address here>")),
  Navigation = Source{0}[Data]
in
  Navigation

การจับคําขอเว็บและการเพิกถอนใบรับรอง

เราได้เสริมสร้างความปลอดภัยของการเชื่อมต่อเว็บเพื่อปกป้องข้อมูลของคุณ อย่างไรก็ตาม ซึ่งหมายความว่าบางสถานการณ์เช่น การจับคําขอเว็บด้วย Fiddler จะไม่ทํางานตามค่าเริ่มต้นอีกต่อไป เมื่อต้องการเปิดใช้งานสถานการณ์เหล่านั้น:

  1. เปิด Power BI Desktop

  2. ภายใต้แท็บ ไฟล์ เลือก ตัวเลือกและการตั้งค่า>ตัวเลือก

  3. ใน ตัวเลือก ภายใต้ ความปลอดภัยส่วนกลาง>ให้ยกเลิกการเลือก เปิดใช้งานการตรวจสอบการเพิกถอนใบรับรอง

    สกรีนช็อตของกล่องกาเครื่องหมายเปิดใช้งานการเพิกถอนใบรับรองที่เลือกไว้

  4. เลือก ตกลง

  5. รีสตาร์ต Power BI Desktop

สำคัญ

โปรดทราบว่าการยกเลิกเปิดใช้งาน การตรวจสอบ การเพิกถอนใบรับรองจะทําให้การเชื่อมต่อเว็บมีความปลอดภัยน้อยลง

ในการตั้งค่าสถานการณ์สมมตินี้ในนโยบายกลุ่ม ให้ใช้คีย์ "DisableCertificateRevocationCheck" ภายใต้เส้นทางรีจิสทรี "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI Desktop" การตั้งค่า "DisableCertificateRevocationCheck" เป็น 0 จะเปิดใช้งานการตรวจสอบ (หยุด Fiddler และซอฟต์แวร์ที่คล้ายกันจากการทํางาน) และการตั้งค่า "DisableCertificateRevocationCheck" เป็น 1 จะปิดใช้งานการตรวจสอบเสมอ (การเปิดใช้งาน Fiddler และซอฟต์แวร์ที่คล้ายกัน)

การเปลี่ยนวิธีการรับรองความถูกต้อง

ในบางกรณี คุณอาจจําเป็นต้องเปลี่ยนวิธีการรับรองความถูกต้องที่คุณใช้เพื่อเข้าถึงไซต์บางไซต์ ถ้าการเปลี่ยนแปลงนี้จําเป็น ไปที่ เปลี่ยนวิธีการรับรองความถูกต้อง

การรับรองความถูกต้องไปยังบริการตามอําเภอใจ

บริการบางอย่างสนับสนุนความสามารถสําหรับตัวเชื่อมต่อเว็บเพื่อรับรองความถูกต้องกับ OAuth/Microsoft Entra ID รับรองความถูกต้องออกจากกล่อง อย่างไรก็ตาม การดําเนินการนี้จะใช้ไม่ได้ในกรณีส่วนใหญ่

เมื่อพยายามรับรองความถูกต้อง ถ้าคุณเห็นข้อผิดพลาดต่อไปนี้:

We were unable to connect because this credential type isn’t supported for this resource. Please choose another credential type.

ข้อผิดพลาดจากการเชื่อมต่อไปยังจุดสิ้นสุดที่ไม่สนับสนุน OAuth ด้วยตัวเชื่อมต่อเว็บ

ติดต่อเจ้าของบริการ พวกเขาจําเป็นต้องเปลี่ยนการกําหนดค่าการรับรองความถูกต้อง หรือสร้างตัวเชื่อมต่อแบบกําหนดเอง

ตัวเชื่อมต่อเว็บใช้ HTTP 1.1 ในการสื่อสาร

ตัวเชื่อมต่อเว็บ Power Query ติดต่อสื่อสารกับแหล่งข้อมูลโดยใช้ HTTP 1.1 ถ้าแหล่งข้อมูลของคุณคาดว่าจะสื่อสารโดยใช้ HTTP 1.0 คุณอาจได้รับข้อผิดพลาด เช่น500 Internal Server Error

ไม่สามารถสลับ Power Query เพื่อใช้ HTTP 1.0 Power Query จะส่งเสมอ Expect:100-continue เมื่อมีเนื้อความเพื่อหลีกเลี่ยงการส่งผ่านส่วนข้อมูลขนาดใหญ่ที่อาจเกิดขึ้นเมื่อการเรียกเริ่มต้นอาจล้มเหลว (ตัวอย่างเช่น เนื่องจากขาดสิทธิ์) ในปัจจุบัน ลักษณะการทํางานนี้ไม่สามารถเปลี่ยนแปลงได้

เชื่อมต่อไปยัง Microsoft Graph

ในขณะนี้ Power Query ไม่สนับสนุนการเชื่อมต่อกับ Microsoft Graph REST API ข้อมูลเพิ่มเติม: การขาดการสนับสนุนสําหรับ Microsoft Graph ใน Power Query

ดูเพิ่มเติม