Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

  • Xóa khỏi các diễn đàn của tôi

  • Câu hỏi

  • Chào mọi người,

    Tôi muốn lấy dữ liệu từ một trang web cần mật khẩu để lấy dữ liệu nhưng tôi đã thử rất nhiều lần mà không thành công. Bất cứ ai có thể vui lòng giúp tôi tìm ra vấn đề? & NBSP;

    Tôi không thể dán hình ảnh tại thời điểm này. Chủ đề ban đầu với hình ảnh như sau. Tôi tự hỏi nếu có ai có thể giúp tôi giải quyết vấn đề này?

    https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_win10 nào 9A23-29884DEBFC5C? TM = 1515220501545

Nếu bạn muốn đưa dữ liệu vào Excel từ một trang web yêu cầu đăng nhập, bạn có thể đã thất vọng vì các truy vấn web không hoạt động tốt. Bằng cách tự động hóa Internet Explorer và quy trình đăng nhập, bạn có thể truy cập dữ liệu đó. Ví dụ này cho thấy cách đăng nhập, lấy một bảng và dán nó vào Excel.

Tôi sẽ sử dụng một trang web mà tôi đã tạo để chứng minh. Tên người dùng là dailydose và mật khẩu là password. Đằng sau đăng nhập, có một bảng mà tôi đã đánh cắp từ bối cảnh.com. Tôi ăn cắp bàn đó cho tất cả các ví dụ của tôi, vì vậy đừng nói với Debra. Nếu bạn cố gắng để có được bảng, trang web sẽ nhận ra rằng bạn không đăng nhập và gửi bạn đến trang đăng nhập. Chỉ sau khi đăng nhập, bạn mới có thể nhận được hàng hóa.

Để tự động hóa Internet Explorer, chúng tôi sẽ cần đặt tham chiếu đến Microsoft Internet Controls.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Trong khi bạn trong hộp thoại tham khảo, hãy đặt tham chiếu đến Thư viện Microsoft Forms 2.0. Điều này sẽ được kiểm tra nếu bạn có một người dùng trong dự án của mình. Tôi sẽ sử dụng nó để đặt một số văn bản vào bảng tạm.

Trước khi tôi nhận được mã, tôi cần phải làm một chút bài tập về nhà. Tôi truy cập trang đăng nhập bằng Firefox và chọn Nguồn trang Mẫu menu Xem.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Tôi lưu ý tên của hai điều khiển trên biểu mẫu, đăng nhập và mật khẩu. Tôi sẽ cần những người sau này. Tôi cũng lưu ý rằng loại đầu vào được gửi. Tiếp theo, tôi đi đến trang mà cuối cùng tôi muốn và xem nguồn của nó.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Tôi lưu ý rằng ID cho bảng tôi muốn là có thể lấy mẫu. Nếu bảng bạn muốn không có ID, bạn cần phải lặp qua tất cả các bảng và cố gắng tìm một số đặc điểm độc đáo của bảng để xác định nó. Dưới đây, một ví dụ lặp lại qua tất cả các bảng cho đến khi tìm thấy bảng lãi suất trung bình cố định 15 năm trên trang tài chính của Yahoo!

Tôi có tất cả dữ liệu tôi cần để tạo mã

Sub GetTable()

Dim IEApp là InternetExplorer Dim Iedoc như đối tượng Dim ietable As Object Dim Clip như DataObject
Dim ieDoc As Object
Dim ieTable As Object
Dim clip As DataObject

Tạo một thể hiện mới của IE SET IEAPP = new InterNetExplorer
Set ieApp = New InternetExplorer

Bạn không cần điều này, nhưng nó rất tốt cho việc gỡ lỗi IEApp.Visible = true
ieApp.Visible = True

'Giả sử chúng tôi không đăng nhập và chỉ cần truy cập trực tiếp vào trang đăng nhập IAPP. = ReadyState_Complete: Doevents: Loop
ieApp.Navigate “http://severe-frost-552.heroku.com/login”
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop

Đặt IEDOC = IEApp.Document

'Điền vào biểu mẫu đăng nhập - Xem nguồn từ trình duyệt của bạn để lấy tên điều khiển bằng iedoc.forms (0) .Login.value = Hồi DailyDose. DOEVENTS: LOOP DO cho đến khi IAPP.ReadyState = ReadyState_Complete: Doevents: Loop
With ieDoc.forms(0)
.login.Value = “dailydose”
.Password.Value = “password”
.submit
End With
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop

'Bây giờ chúng tôi đang ở, hãy truy cập trang mà chúng tôi muốn iAPP.navate Doevents: Vòng lặp
ieApp.Navigate “http://severe-frost-552.heroku.com/”
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop

Nhận bảng dựa trên bảng ID ID tập IEDOC = iAPP.Document SET ietable = iedoc.all.item (Hồi Sampletable có thể sử dụng))
Set ieDoc = ieApp.Document
Set ieTable = ieDoc.all.Item(“sampletable”)

'Sao chép các bảng HTML vào bảng tạm và dán vào tờ TEH nếu không phải là không có gì thì đặt clip = clip DataObject mới. .Select Sheet1.PasteSpecial “Unicode Text” End If
If Not ieTable Is Nothing Then
Set clip = New DataObject
clip.SetText “” & ieTable.outerHTML & “”
clip.PutInClipboard
Sheet1.Select
Sheet1.Range(“A1”).Select
Sheet1.PasteSpecial “Unicode Text”
End If

Đóng ‘er up ieApp.quit set IAApp = Không có gì
ieApp.Quit
Set ieApp = Nothing

Kết thúc phụ

Mã trước tiên đi trực tiếp đến trang đăng nhập. Điều này sẽ không cần thiết nếu bạn đã có một cookie nhớ rằng bạn đã đăng nhập. Tuy nhiên, thay vì kiểm tra xem chúng tôi có đến đúng trang không, tôi đi đăng nhập mỗi lần.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Tiếp theo, chúng tôi điền vào hai điều khiển, đăng nhập và mật khẩu và gửi nó.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Điều này thực sự đưa chúng ta ngay ở nơi chúng ta muốn. Nhưng đó không phải là trường hợp luôn như vậy. Đôi khi, bạn sẽ muốn đi một trang khác với trang mà tập lệnh đăng nhập chuyển hướng đến. Tiếp theo trong mã, tôi điều hướng đến trang tôi muốn.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Bạn có thể nhận thấy rằng mỗi lần tôi điều hướng ở đâu đó (hoặc gửi, gây ra chuyển hướng), tôi chạy cùng sáu dòng mã. Sáu dòng đó, cô đọng thành hai với dấu chấm, khiến mã phải đợi xung quanh cho đến khi trang được tải hoàn thành.

Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop

Bây giờ công việc quản trị đã hoàn thành và trang của tôi đã được tải, tôi nhận được bảng có ID có thể lấy mẫu. Tôi lấy thuộc tính Outerhtml, bao quanh nó với các thẻ HTML và nhét nó vào bảng tạm thông qua DataObject. Thẻ HTML Trick vượt trội khi nghĩ rằng định dạng của dataObject là HTML. Tricksled, Excel sẽ phân tích HTML và cố gắng hiểu ý nghĩa của nó. Nó sẽ hoạt động như thể bạn đã sao chép từ trang web và dán vào Excel. Tôi chọn ô A1 và dán văn bản Unicode đặc biệt.

Hướng dẫn excel import data from website with login - excel nhập dữ liệu từ trang web với thông tin đăng nhập

Cuối cùng, tôi bỏ IE.

Tôi không biết nếu điều này sẽ hoạt động trên mọi trang web, nhưng nó đã làm việc với một số ít mà tôi đã thử. Tôi cũng đã trải qua một số vấn đề với nó trên máy khác. Chúng tôi không bao giờ đi đến tận cùng của nó, nhưng chúng tôi nghĩ rằng nó liên quan đến tường lửa. Nếu bạn có vấn đề, hãy để lại một bình luận.

Làm cách nào để tự động nhập dữ liệu từ trang web vào Excel?

Chọn Dữ liệu> Nhận & Biến đổi> Từ Web.Nhấn Ctrl+V để dán URL vào hộp văn bản, sau đó chọn OK.Trong ngăn Navigator, trong các tùy chọn hiển thị, chọn bảng kết quả.Truy vấn Power sẽ xem trước nó cho bạn trong khung Chế độ xem bảng ở bên phải.

Làm cách nào để lấy dữ liệu từ đăng nhập trang web?

Parsehub là một máy cạo web miễn phí và mạnh mẽ, có thể đăng nhập vào bất kỳ trang web nào trước khi nó bắt đầu cạo dữ liệu.Sau đó, bạn có thể thiết lập nó để trích xuất dữ liệu cụ thể mà bạn muốn và tải xuống tất cả vào tệp Excel hoặc JSON.Để bắt đầu, hãy đảm bảo bạn tải xuống và cài đặt Parsehub miễn phí.. You can then set it up to extract the specific data you want and download it all to an Excel or JSON file. To get started, make sure you download and install ParseHub for free.

Excel có thể tự động cập nhật dữ liệu từ một trang web không?

Một giải pháp tinh vi hơn: Macros Nếu bạn, giống như nhiều khách hàng của Excel Consulting đang tự hỏi liệu có một giải pháp tốt hơn, câu trả lời ngắn gọn cho vấn đề phổ biến này là: Có Có!Bạn hoàn toàn có thể tự động rút dữ liệu từ Internet vào tệp Excel của bạn.Để làm như vậy, bạn cần phải đi từ thủ công đến macro.You absolutely can automatically pull data from the Internet into your Excel file. To do so, you need to go from manual to macro.