Show
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à Để tự động hóa Internet Explorer, chúng tôi sẽ cần đặt tham chiếu đến Microsoft Internet Controls. 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. 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ó. 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ã
Dim IEApp là InternetExplorer Dim Iedoc như đối tượng Dim ietable As Object Dim Clip như DataObject Tạo một thể hiện mới của IE 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 '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 Đặ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 '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 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)) '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 Đóng ‘er up ieApp.quit set IAApp = Không có gì 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. 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ó. Đ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. 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.
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. 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. |