- VisualStudio2022
- pprof-Hướng dẫn sử dụng nó trong bản mạng trực tiếp
- Triển khai C# các loại hộp chọn nhiều màu lựa chọn thả xuống, cây lựa chọn nhiều màu lựa chọn thả xuống và các nút tối đa
- [Ghi chú học tập] Cơ sở dữ liệu cấu trúc: cat tree
Người ta ước tính rằng mọi người đều đã biết điều gì về việc thu thập dữ liệu trên web và thu thập dữ liệu và có rất nhiều phần mềm được làm sẵn trên thị trường. trình thu thập thông tin công nghệ để thu thập AV dữ liệu của các trang web và xây dựng liên kết nam châm trang.
Bài viết này sẽ giới thiệu cách mô phỏng các thao tác thủ công và chuyển đổi một số thao tác cố định định nhạt thành quy trình tự động.
Bài viết này chỉ chia sẻ kinh nghiệm viết script tự động của tôi và không liên quan đến nội dung khác hay bản thân tôi.
Để đăng bài một cách chia sẻ, bài viết này sẽ hướng dẫn cách đăng nhập tài khoản Blog Park và ra toàn bộ bình luận. Bao gồm điểm nổi bật:
Những kỹ thuật lập trình dịch này đều có sẵn và bạn sẽ được hưởng rất nhiều lợi ích từ công việc học của họ Hãy nhớ chúng .
Thêm các gói tham chiếu sau vào dự án tệp:
Sử dụng mã C# sau để đăng nhập:
// Nhập tài khoản IWebElement accountElement = webDriver.FindElement(By.CssSelector("#mat-input-0")); accountElement.SendKeys(account); var element_account = accountElement.GetAttribution("value"); khẩuPhần tử = webDriver.FindElement(By.CssSelector("#mat-input-1")); passElement.SendKeys(password); var element_password = passElement.GetAttribution("value"); chưa xác thực if (account != element_account || pass != element_password) { Xử lý ngoại lệ mới("Tài khoản trang nhập sai mật khẩu ");
// Nhấn vào nút đăng nhập IWebElement loginBtnElement = webDriver.FindElement(By.CssSelector(@"body > app-root > app-sign-in-layout > div > div > app-sign-in > app-content-container > div > div > div > biểu mẫu > div > nút")); loginBtnElement.Click(); // IWebElement verifyBtnElement = webDriver.FindElement(By.CssSelector(@"#ectMask")); Cần ẩn các tính năng tự động hóa, xem dòng 27 của mã verifyBtnElement.Click();
Lý do tại sao ba phương pháp được cung cấp là vì một số trang web thực hiện xác minh chống tự động trên giao diện của chính họ, nhưng giao diện của bên thứ ba thường khả thi! .
IWebElement tableElement = webDriver.FindElement(By.XPath(@"/html/body/cnb-root/cnb-app-layout/div[2]/as-split/as-split-area[2]/div/div/ cnb-spinner/div/cnb-comment-main/cnb-spinner/div/div[2]/table")); // Trích xuất phần thân bảng IWebElement tbody = tableElement.FindElement(By.TagName("tbody")); IList row = tbody.FindElements(By.TagName("tr")); // Danh sách khởi tạo lưu trữ dữ liệu bảng List< string > tableData = Danh sách mới(); foreach (var row theo hàng) { IList cell = row.FindElements(By.TagName("td")); // Xử lý các ô tiêu đề if (cells.Count == 0) { cell = row.FindElements(By.TagName("th") } List< string> cellTexts = Danh sách mới(); foreach (ô var trong ô) { string cellText = cell.Text.Trim(); } // Sử dụng ký tự ống làm dấu phân cách để tránh xung đột với dấu phẩy trong chuỗi dữ liệu rowData = string.Join(" | ", cellTexts;Add(rowData } // Xuất dữ liệu được trích xuất foreach (var row); trong tableData) { Console.WriteLine(row }
// Điều hướng đến địa chỉ giao diện webDriver.Navigate().GoToUrl(CnBlogs.CommentsGetApi); var data = webDriver.PageSource Console.WriteLine(data);
webDriver.Navigate().GoToUrl(CnBlogs.CommentsUrl); IJavaScriptExecutor executor = (IJavaScriptExecutor)webDriver; executor.ExecuteScript(@" var container = document.createElement('div'); container.id = 'hiddenDataDiv'; container.style .display = 'không có'; document.body.appendChild(container); tìm nạp('https://i.cnblogs.com/api/feedback/1?mine=false', { headers: { 'accept': 'application/json, text/plain, */*', 'ngôn ngữ chấp nhận': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 'ưu tiên': 'u=1, i', 'sec-ch -ua': '\"Microsoft Edge\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '\"Windows\"', 'sec-fetch -dest': 'trống', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin' }, người giới thiệu: 'https://i.cnblogs.com/comments' , giới thiệuPolicy: 'strict-origin-when-cross-origin', phương thức: 'GET', mode: 'cors', thông tin xác thực: 'include' }) .then(response => reply.json()) .then(data = > { document.getElementById('hiddenDataDiv').textContent = JSON.stringify(data }) .catch(error => console.error('Error:', error)); "); chuỗi jsonData = executor.ExecuteScript("return document.getElementById('hiddenDataDiv').textContent;").ToString(); Console.WriteLine(jsonData);
Blog Park lỗi đăng nhập.
Đăng nhập vào Bug Video để tải về và xem. Trình duyệt không hỗ trợ.
Các kịch bản mã xác minh phức tạp có thể được giải quyết thông qua các mô hình đa phương thức AI, chẳng hạn như các yếu tố định vị và di chuyển chuột. Ngoài ra, AI còn có thể được sử dụng để tổ chức và phân tích dữ liệu nhằm nâng cao hiệu quả xử lý dữ liệu.
Dự án này được phát triển dựa trên trình duyệt .NET 5 và Edge và mã nguồn đã được tải lên GitHub:
https://github.com/ZhangQueque/CrawlerScript.
Tôi hy vọng blog được tối ưu hóa này sẽ hữu ích cho bạn! Nếu bạn có bất kỳ câu hỏi nào hoặc cần tối ưu hóa thêm, vui lòng liên hệ với chúng tôi bất cứ lúc nào.
Cuối cùng, bài viết về tập lệnh tự động hóa trình thu thập thông tin + trao quyền cho AI kết thúc tại đây. Nếu bạn muốn biết thêm về tập lệnh tự động hóa trình thu thập thông tin + trao quyền cho AI, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. blog! .
Tôi là một lập trình viên xuất sắc, rất xuất sắc!