Hướng dẫn python selenium get har file - python selen lấy har tập tin
Mục tiêu: Tôi muốn chạy một tập lệnh Selenium Python thông qua Browsermob-Proxy, sẽ nắm bắt và xuất ra một tập tin thu được. I want to run a Selenium Python script through BrowserMob-Proxy, which will capture and output a HAR file capture. Show Vấn đề: Tôi có một tập lệnh Python chức năng (rất cơ bản) (hiển thị bên dưới). Khi nó được thay đổi để sử dụng Browsermob-Proxy để bắt HAR, tuy nhiên, nó đã thất bại. Dưới đây tôi cung cấp hai tập lệnh khác nhau mà cả hai đều thất bại, nhưng vì những lý do khác nhau (chi tiết được cung cấp sau đoạn mã). I have a functional (very basic) Python script (shown below). When it is altered to utilize BrowserMob-Proxy to capture HAR however, it fails. Below I provide two different scripts that both fail, but for differing reasons (details provided after code snippets). Browsermob-Proxy Giải thích: Như đã đề cập trước đây, tôi đang sử dụng cả 0,6.0 và 2.0-beta-8. Lý do cho điều này là A) Lightbody (Trình thiết kế chính của BMP) gần đây đã chỉ ra rằng bản phát hành mới nhất của anh ấy (2.0-beta-9) không hoạt động và khuyên người dùng nên sử dụng 2.0-beta-8 thay thế và B) từ những gì tôi có thể Nói từ việc đọc thông tin khác nhau về trang web/stackoverflow là 0.6.0 (thu được thông qua PIP) được sử dụng để thực hiện các cuộc gọi đến máy khách.py/server.py, trong khi 2.0-beta-8 được sử dụng để bắt đầu máy chủ. Thành thật mà nói, điều này làm tôi bối rối. Tuy nhiên, khi nhập máy chủ của BMP, nó yêu cầu một tệp hàng loạt (.bat) để bắt đầu máy chủ, không được cung cấp trong 0,6.0, nhưng với 2.0 beta-8 ... nếu có ai có thể làm sáng tỏ khu vực này của khu vực này của Sự nhầm lẫn (tôi nghi ngờ đó là gốc rễ của những vấn đề của tôi được mô tả dưới đây), sau đó tôi sẽ được đánh giá cao nhất. As mentioned before, I am using both 0.6.0 AND 2.0-beta-8. The reasoning for this is that A) LightBody (lead designer of BMP) recently indicated that his most current release (2.0-beta-9) is not functional and advises users to use 2.0-beta-8 instead and B) from what I can tell from reading various site/stackoverflow information is that 0.6.0 (acquired through PIP) is used to make calls to the Client.py/Server.py, whereas 2.0-beta-8 is used to initiate the Server. To be honest, this confuses me. When importing BMP's Server however, it requires a batch (.bat) file to initiate the server, which is not provided in 0.6.0, but is with 2.0-beta-8...if anyone can shed some light on this area of confusion (I suspect it is the root of my problems described below), then I'd be most appreciative. Thông số kỹ thuật phần mềm:
Selenium script (tập lệnh này hoạt động):
Kịch bản này thành công trong việc chạy và không tạo ra bất kỳ lỗi nào. Nó được cung cấp cho mục đích minh họa để chỉ ra nó hoạt động trước khi thêm logic BMP. Script alpha với BMP (không hoạt động):
Mã này sẽ thành công trong việc chạy tập lệnh và sẽ không tạo ra bất kỳ lỗi nào. Tuy nhiên, khi tìm kiếm toàn bộ ổ cứng của tôi, tôi không bao giờ thành công trong việc định vị alpha_har.har. Script Beta với BMP (không hoạt động):
Mã này được lấy từ http://browsermob-proxy-py.readthedocs.org/en/latest/. Khi chạy mã trên, Firefox sẽ cố gắng lấy Google.com, nhưng sẽ không bao giờ thành công trong việc tải trang. Cuối cùng, nó sẽ hết thời gian mà không tạo ra bất kỳ lỗi nào. Và beta_har.har không thể được tìm thấy ở bất cứ đâu trên ổ cứng của tôi. Tôi cũng đã nhận thấy rằng, khi cố gắng sử dụng trình duyệt này để truy cập bất kỳ trang web nào khác, nó sẽ không tải tương tự (tôi nghi ngờ điều này là do proxy không được cấu hình đúng). unread, Tìm dữ liệu bạn muốn trích xuất ..9/27/14 đến Viết mã .. Vấn đề: Tôi có một tập lệnh Python chức năng (rất cơ bản) (hiển thị bên dưới). Khi nó được thay đổi để sử dụng Browsermob-Proxy để nắm bắt HAR, nó đã thất bại. Dưới đây tôi cung cấp hai tập lệnh khác nhau mà cả hai đều thất bại, nhưng vì những lý do khác nhau (chi tiết được cung cấp trước đoạn mã). Thông số kỹ thuật phần mềm:
Browsermob-Proxy Giải thích: Như đã đề cập trước đây, tôi đang sử dụng cả 0,6.0 và 2.0-beta-8. Lý do cho điều này là A) Lightbody gần đây đã chỉ ra rằng bản phát hành mới nhất của anh ấy (2.0-beta-9) không có chức năng và khuyên người dùng nên sử dụng 2.0-beta-8 thay thế và B) từ những gì tôi có thể nói từ việc đọc các trang web khác nhau/ Thông tin StackOverflow là 0,6.0 (thu được thông qua PIP) được sử dụng để thực hiện các cuộc gọi đến máy khách.py/server.py, trong khi 2.0-beta-8 được sử dụng để bắt đầu máy chủ. Thành thật mà nói, điều này làm tôi bối rối. Tuy nhiên, khi nhập máy chủ của BMP, nó yêu cầu một tệp hàng loạt (.bat) để bắt đầu máy chủ, không được cung cấp trong 0,6.0, nhưng với 2.0 beta-8 ... nếu có ai có thể làm sáng tỏ khu vực này của khu vực này của Sự nhầm lẫn (tôi nghi ngờ đó là gốc rễ của những vấn đề của tôi được mô tả dưới đây), sau đó tôi sẽ được đánh giá cao nhất. Tập lệnh selen (tập lệnh này hoạt động): & nbsp; Kịch bản này thành công trong việc chạy và không tạo ra bất kỳ lỗi nào. Nó được cung cấp cho mục đích minh họa để chỉ ra nó hoạt động trước khi thêm logic BMP.
Script Alpha với BMP (không hoạt động): Mã này sẽ thành công trong việc chạy tập lệnh và sẽ không tạo ra bất kỳ lỗi nào. Tuy nhiên, khi tìm kiếm toàn bộ ổ cứng của tôi, tôi không bao giờ thành công trong việc định vị alpha_har.har.
Script Beta với BMP (không hoạt động): Mã này được lấy từ http://browsermob-proxy-py.readthedocs.org/en/latest/. Khi chạy mã dưới đây, Firefox sẽ cố gắng lấy Google.com, nhưng sẽ không bao giờ thành công trong việc tải trang. Cuối cùng, nó sẽ hết thời gian mà không tạo ra bất kỳ lỗi nào. Và beta_har.har không thể được tìm thấy ở bất cứ đâu trên ổ cứng của tôi. Tôi cũng đã nhận thấy rằng, khi cố gắng sử dụng trình duyệt này để truy cập bất kỳ trang web nào khác, nó sẽ không tải tương tự (tôi nghi ngờ điều này là do proxy không được cấu hình đúng).
Patrick Lightbodyunread, Ngày 28 tháng 9 năm 2014, 10:54:24 PM9/28/149/28/14 đến Luôn hạnh phúc khi cố gắng có được một số tình yêu ngẫu nhiên và sự ngưỡng mộ từ người lạ! Đáng buồn thay, trong trường hợp này, tôi không nghĩ rằng có một tấn tôi có thể nói, vì tôi chỉ đơn giản là không biết Python và tôi không thực sự biết những ràng buộc đó hoạt động như thế nào (chúng được đóng góp bởi người khác). Những gì tôi biết là API BMP REST, đó là những gì mà Python bao gồm, không viết tệp HAR ở bất cứ đâu. Nó chỉ đơn giản là trả lại JSON qua HTTP. Vì vậy, trừ khi trình bao bọc Python đang viết tệp ở đâu đó, việc tìm kiếm ổ cứng của bạn sẽ luôn vô ích. Gợi ý: Nó không có;) Bạn đã thử chỉ in ra đầu ra của cuộc gọi proxy.har chưa? :) Patrick unread, Ngày 30 tháng 9 năm 2014, 8:11:54 AM9/30/149/30/14 đến Luôn hạnh phúc khi cố gắng có được một số tình yêu ngẫu nhiên và sự ngưỡng mộ từ người lạ! Đáng buồn thay, trong trường hợp này, tôi không nghĩ rằng có một tấn tôi có thể nói, vì tôi chỉ đơn giản là không biết Python và tôi không thực sự biết những ràng buộc đó hoạt động như thế nào (chúng được đóng góp bởi người khác). Những gì tôi biết là API BMP REST, đó là những gì mà Python bao gồm, không viết tệp HAR ở bất cứ đâu. Nó chỉ đơn giản là trả lại JSON qua HTTP. Vì vậy, trừ khi trình bao bọc Python đang viết tệp ở đâu đó, việc tìm kiếm ổ cứng của bạn sẽ luôn vô ích. Gợi ý: Nó không có;) Bạn đã thử chỉ in ra đầu ra của cuộc gọi proxy.har chưa? :) Patrick Ngày 30 tháng 9 năm 2014, 8:11:54 AM9/30/14 Này Patrick, Cảm ơn sự hỗ trợ (bắt đầu phễu tình yêu và chầu theo hướng của bạn). & Nbsp; Tôi đã trải nghiệm một chút thời điểm facepalm sau khi đọc văn bản của bạn, vì tôi nhận ra rằng tôi đang đưa ra giả định khủng khiếp rằng proxy.HAR ủng hộ chức năng đó (không nhận ra tôi cần phải viết mã, đặc biệt là đưa ra tất cả các ví dụ & nbsp; hoặc bao gồm điều đó). & nbsp; Sử dụng đề xuất của bạn, tôi đã viết một phụ lục Python nhanh chóng cho trường hợp thử nghiệm Alpha_har trước đó đã chạy thành công và tạo ra đầu ra HAR. & NBSP; Tuy nhiên, nó có vẻ cực kỳ nhẹ cho dữ liệu, ngay cả khi tất cả những gì nó đang làm là tải trang chủ của Google. Kịch bản "làm việc": & nbsp; & nbsp; & nbsp; từ Selenium Nhập WebDriver Kết quả "làm việc" kết quả: & nbsp; & nbsp; & nbsp; s . , u'entries ': []}} Như bạn có thể thấy từ trên, đầu ra rất nhẹ - có vẻ không đúng. & NBSP; Mặc dù vậy, để đảm bảo, tôi đã tô điểm cho tập lệnh selen trước đó, để nó được chuyển đến Google và thực hiện một truy vấn (hoạt động tốt), sau đó được thêm vào logic BMP để thu thập Har. & NBSP; Do đó, nó & nbsp; sẽ phải & nbsp; tạo thêm dữ liệu. & Nbsp; Kịch bản dưới đây, nhưng thật không may, nó đã lỗi. & NBSP; Dưới đây là thông báo theo dõi lỗi và kết quả là dựa trên proxy.har (logic BMP) - Bạn có thể giúp tôi tìm ra điều này không? Tập lệnh kiểm tra mới: & nbsp; & nbsp; & nbsp; "" "" Script selen được sử dụng cùng với BMP để chạy truy vấn trong Google, sau đó ghi lại kết quả HAR trong Charlie_har.har "" "" " & nbsp; & nbsp; & nbsp; từ Selenium Nhập WebDriver & NBSP; & NBSP; & NBSP; từ selenium.webdriver.common.keys Chìa khóa nhập khẩu & nbsp; & nbsp; & nbsp; từ máy chủ nhập khẩu browsermobproxy & nbsp; & nbsp; & nbsp; Server = Server ('C: \ Users \ Matt \ Desktop \\ Browsermob-Proxy-2.0-Beta-8 \\ bin \\ Browsermob-Proxy') & nbsp; & nbsp; & nbsp; server.start () # khởi tạo bmp & nbsp; & nbsp; & nbsp; proxy = server.create_proxy () # Tạo BM Proxy & nbsp; & nbsp; & nbsp; Driver = WebDriver.firefox () # Mở Trình duyệt Firefox & nbsp; & nbsp; & nbsp; trình điều khiển.set_window_size (1024, 768) # Đặt kích thước cửa sổ Trình duyệt FF & nbsp; & nbsp; & nbsp; Element = driver.find_element_by_xpath ('//*[@id = "gbqfq"]') # định vị XPath được liên kết với hộp tìm kiếm Google. & nbsp; & nbsp; & nbsp; Element.Send_Keys ('Cảm ơn vì đã giúp tôi ra ngoài, Patrick!') # Loại "Cảm ơn vì đã giúp tôi, Patrick!" trong hộp tìm kiếm của Google. & nbsp; & nbsp; & nbsp; Element.Send_Keys (Keys.enter) # Nhấn phím "Enter" trong khi ở hộp tìm kiếm Google, do đó nhập các yêu cầu tìm kiếm và tải trang kết quả. & nbsp; & nbsp; & nbsp; server.stop () # tắt BMP & nbsp; & nbsp; & nbsp; Trả lời = str (proxy.har) # Trả về một blob har json, chuyển đổi nó thành một chuỗi và gán nó cho biến "Trả lời" & nbsp; & nbsp; & nbsp; file = open ('delta_har.har', 'w+') # tạo một tệp mới có tên Delta_har.har, nằm trong thư mục nơi tập lệnh được chạy từ & nbsp; & nbsp; & nbsp; file.write (câu trả lời) # ghi vào delta_har.har, nối thêm biến "Trả lời" & nbsp; & nbsp; & nbsp; file.close () # lưu và đóng delta_har.har Thông báo lỗi tập lệnh kiểm tra mới: thông báo: & nbsp; & nbsp; & nbsp; TraceBack (cuộc gọi gần đây nhất cuối cùng): & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp "test3.py", dòng 21, in & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Trả lời = str (proxy.har) # Trả về một blob har json, chuyển đổi nó thành một chuỗi và gán nó cho biến "Trả lời" & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp "C: \ python27 \ lib \ site-packages \ browsermobproxy \ client.py", dòng 64, trong har & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; trả về r.json () & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp "C: \ Python27 \ lib \ site-Packages \ requests \ model.py", dòng 776, trong json & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; trả về json.loads (self.text, ** kwargs) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp "C: \ python27 \ lib \ json \ __ init__.py", dòng 338, trong loads & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; trả về _default_decoder.decode (s) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp "C: \ Python27 \ lib \ json \ decoder.py", dòng 366, trong giải mã & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; obj, end = self.raw_decode (s, idx = _w (s, 0) .end ()) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp "C: \ Python27 \ lib \ json \ decoder.py", dòng 384, trong Raw_Decode & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tăng giá trịerror ("không có đối tượng JSON có thể được giải mã") & nbsp; & nbsp; & nbsp; ValueError: Không có đối tượng JSON nào có thể được giải mã Tôi đã chuyển sang web/stackoverflow và đọc rằng các lỗi JSON có xu hướng khá không có ích và tôi nên thử truyền kết quả vào đầu đọc JSON (ví dụ: http://jsonlint.com/) để có ý tưởng tốt hơn về vấn đề gốc. & nbsp; & nbsp; để làm như vậy, tôi đã vào ỨNG DỤNG. ; Tôi không thể giải mã & nbsp; đến định dạng UTF-8 cho đọc JSON, nhưng một bản in thường xuyên dẫn đến điều này cực kỳ ngắn & NBSP; đầu ra (xem bên dưới). Đầu ra JSON (được lấy trực tiếp từ BMP's Client.py [thay thế "return r.json () bằng" in r "]): Đó là một phản ứng cực kỳ ngắn. & NBSP; Điều duy nhất xuất hiện trong đầu khi tôi nghĩ rằng phản hồi 200 là mã HTTP cho một trang được tải thành công. & NBSP; Thực tế là không có nhiều thông tin để in khiến tôi tin rằng, vì một số lý do, client.py (đối với BMP) không nắm bắt được tất cả thông tin. & NBSP; Và vì vậy, khi chuyển đổi "" thành JSON, nó không thành công, bởi vì nó không phải là một đầu vào thích hợp để chuyển đổi (lý thuyết hóa ở đây). Bất kỳ ý tưởng? & NBSP; Nếu thực sự có một vấn đề với khách hàng được cung cấp với BMP, thì tôi sẽ nghĩ những người khác sẽ báo cáo vấn đề này. Patrick Lightbody Thanks,Matt Ngày 30 tháng 9 năm 2014, 12:03:31 PM9/30/14unread, đến9/30/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Krishnan Mahadevan Ngày 30 tháng 9 năm 2014, 12:51:52 PM9/30/14unread, Patrick là chính xác.9/30/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Matt, Krishnan Mahadevan Ngày 30 tháng 9 năm 2014, 12:51:52 PM9/30/14 Patrick là chính xác. Từ mã làm việc của bạn: Kịch bản "làm việc": & nbsp; & nbsp; & nbsp; từ Selenium Nhập WebDriver proxy = server.create_proxy() # Creates BM Proxy Server = Server ('C: \ Users \ Matt \ Desktop \\ Browsermob-Proxy-2.0-Beta-8 \\ bin \\ Browsermob-Proxy') & nbsp; & nbsp; & nbsp; server.start () # khởi tạo bmp & nbsp; & nbsp; & nbsp; proxy = server.create_proxy () # Tạo BM Proxy & nbsp; & nbsp; & nbsp; Driver = WebDriver.firefox () # Mở Trình duyệt Firefox & nbsp; & nbsp; & nbsp; server.stop () # tắt BMP & nbsp; & nbsp; & nbsp; Trả lời = str (proxy.har) # Trả về một blob har json, chuyển đổi nó thành một chuỗi và gán nó cho biến "Trả lời" & nbsp; & nbsp; & nbsp; file = open ('Charlie_har.har', 'w+') # tạo một tệp mới có tên Charlie_har.har, nằm trong thư mục nơi tập lệnh được chạy từ & nbsp; & nbsp; & nbsp; file.write (câu trả lời) # viết cho Charlie_har.har, nối thêm biến "Trả lời" & nbsp; & nbsp; & nbsp; file.close () # lưu và đóng Charlie_har.har Kết quả "làm việc" kết quả: & nbsp; & nbsp; & nbsp; s . , u'entries ': []}}
unread, Tôi không thấy bạn ràng buộc thông tin máy chủ proxy vào các khả năng của đối tượng WebDriver trước khi sinh ra trình duyệt Firefox.10/1/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Patrick/Krishnan, Krishnan Mahadevan Ngày 30 tháng 9 năm 2014, 12:03:31 PM9/30/14unread, đến10/1/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Krishnan Mahadevan unread, Ngày 30 tháng 9 năm 2014, 12:51:52 PM9/30/1410/1/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Krishnan Mahadevan Ngày 30 tháng 9 năm 2014, 12:51:52 PM9/30/14 Patrick là chính xác. Từ mã làm việc của bạn: unread, Kịch bản "làm việc":10/1/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Krishnan Mahadevan Ngày 30 tháng 9 năm 2014, 12:51:52 PM9/30/14 Patrick là chính xác. unread, Từ mã làm việc của bạn:10/1/14 Nó không giống như bài kiểm tra của bạn thực sự cấu hình trình duyệt để sử dụng proxy. Đó sẽ là lý do tại sao HAR trống rỗng! Tôi không biết chính xác mã Python sẽ là gì, nhưng điều này được gọi ra trong readme cho java: Krishnan Mahadevan Ngày 30 tháng 9 năm 2014, 12:51:52 PM9/30/14 Har sản xuất kịch bản Python:
"" "SELENIUM SCRIPT được sử dụng cùng với BMP để chạy truy vấn trong Google, sau đó nắm bắt kết quả HAR trong Charlie_Har.Har" "" & nbsp; & nbsp; & nbsp; từ Selenium Nhập WebDriver & NBSP; & NBSP; & NBSP; từ selenium.webdriver.common.keys Chìa khóa nhập khẩu & nbsp; & nbsp; & nbsp; từ máy chủ nhập khẩu browsermobproxy server = server ('c: \ users \ sand \ desktop \\ browsermob-proxy-2.0-beta-8 \\ bin \\ browsermob-proxy') # máy chủ BMP được bắt đầu bởi browsermob-proxy.bat; Bạn sẽ cần sửa đổi dòng này để trỏ đến của bạn
server.start () # khởi tạo bmp & nbsp; & nbsp; & nbsp; proxy = server.create_proxy () # Tạo BM Proxy Hồ sơ = WebDriver.FireFoxProfile () # 1/3: Mở trình duyệt Firefox và thiết lập cà vạt proxy giữa Selenium, BMP và trình duyệt Firefox của bạn & NBSP; & NBSP; & NBSP; hồ sơ.set_proxy (proxy.selenium_proxy ()) # 2/3: Mở trình duyệt Firefox và thiết lập liên kết proxy giữa Selenium, BMP và Trình duyệt Firefox của bạn & NBSP; & NBSP; & NBSP; Driver = WebDriver.firefox (firefox_profile = hồ sơ) # 3/3: Mở trình duyệt Firefox và thiết lập cà vạt proxy giữa Selenium, BMP và Trình duyệt Firefox của bạn & nbsp; & nbsp; & nbsp; trình điều khiển.set_window_size (1024, 768) # Đặt kích thước cửa sổ Trình duyệt FF proxy.new_har ("matt_was_here") # tạo một mục har mới có tên matt_was_here trong charlie_har.har đầu ra & nbsp; & nbsp; & nbsp; Driver.get ('https://www.google.com/') # Nhận Google.com và tải trang. & nbsp; & nbsp; & nbsp; Element = driver.find_element_by_xpath ('//*[@id = "gbqfq"]') # định vị XPath được liên kết với hộp tìm kiếm Google. Element.Send_Keys ('Cảm ơn Patrick đã cung cấp cho tất cả chúng tôi BMP') # Loại "Cảm ơn ..." trong hộp tìm kiếm của Google.
Element.Send_Keys (Keys.enter) # Nhấn phím "Enter" trong khi ở hộp tìm kiếm Google, do đó nhập các yêu cầu tìm kiếm và tải trang kết quả. & nbsp; & nbsp; & nbsp; server.stop () # tắt bmp Trả lời = proxy.har # Trả về một blob har json và gán nó cho biến "câu trả lời" & nbsp; & nbsp; & nbsp; file = open ('Charlie_har.har', 'w+') # tạo một tệp mới có tên Charlie_har.har, nằm trong thư mục nơi tập lệnh được chạy từ & nbsp; & nbsp; & nbsp; file.write (câu trả lời) # viết cho Charlie_har.har, nối thêm biến "Trả lời" & nbsp; & nbsp; & nbsp; file.close () # lưu và đóng Charlie_har.har Browsermobproxy là gì?Browsermob Proxy là một công cụ nguồn mở được sử dụng để thu thập dữ liệu hiệu suất cho các ứng dụng web ở định dạng HAR.Nó cũng cho phép thao tác với hành vi và lưu lượng truy cập của trình duyệt, chẳng hạn như mô phỏng lưu lượng mạng, viết lại các yêu cầu và phản hồi HTTP, v.v.an open source tools which is used to capture performance data for a web applications in an HAR format. It also allows to manipulate browser behavior and traffic, such as simulating network traffic, rewriting HTTP requests and responses etc.
Làm thế nào để Python nắm bắt lưu lượng mạng?Trong bài viết này, chúng tôi sẽ tìm hiểu cách loại bỏ dữ liệu trong lưu lượng mạng bằng Python ... Các mô -đun cần thiết .. Phương pháp 1: Sử dụng phương thức get_log () của selenium .. Phương pháp 2: Sử dụng BrowsermobProxy để ghi tệp HAR từ tab mạng của trình duyệt .. Làm thế nào để bạn cạo dữ liệu từ một mạng trong Python?Để trích xuất dữ liệu bằng cách sử dụng máy quét web với Python, bạn cần làm theo các bước cơ bản sau:.. Tìm URL mà bạn muốn cạo .. Kiểm tra trang .. Tìm dữ liệu bạn muốn trích xuất .. Viết mã .. Chạy mã và trích xuất dữ liệu .. Lưu trữ dữ liệu theo định dạng cần thiết .. |