2012-05-16 32 views

Trả lời

5

Bạn có thể sử dụng phantomjs cho công tác này.

phantomjs examples/netsniff.js "some_url" > out.har 

hoặc có một cái nhìn tại BrowserMob Proxy

2

Tôi đã làm việc với PhantomJS để tạo file HAR nhưng họ không thực sự đáng tin cậy như trái ngược với các tập tin HAR được tạo ra bởi các trình duyệt thực tế như Chrome, Firefox. Sử dụng selen và BrowsermobProxy, bạn có thể tạo các file HAR trực tiếp từ trình duyệt với một kịch bản python như thế này:

from browsermobproxy import Server 
from selenium import webdriver 
import json 

server = Server("path/to/browsermob-proxy") 
server.start() 
proxy = server.create_proxy() 
profile = webdriver.FirefoxProfile() 
profile.set_proxy(self.proxy.selenium_proxy()) 
driver = webdriver.Firefox(firefox_profile=profile) 
proxy.new_har("http://stackoverflow.com", options={'captureHeaders': True}) 
driver.get("http://stackoverflow.com")  
result = json.dumps(proxy.har, ensure_ascii=False) 
print result 
proxy.stop()  
driver.quit() 

Nếu bạn đang tìm kiếm một công cụ dòng lệnh đó headlessly tạo HAR và dữ liệu hiệu suất với Chrome và Firefox, có hãy xem Speedprofile.

+0

+1 cho PhantomJs không phải là siêu đáng tin cậy, nó là tuyệt vời cho các công cụ phi nhiệm vụ quan trọng nhưng có xu hướng sụp đổ trên các trang web có đánh dấu xấu. – siliconrockstar

1

Tệp har của Phantomjs là danh sách tài sản được viết tắt. Nói cách khác, khi bạn truy cập trang web bằng Chrome hoặc trình duyệt khác, tệp sẽ tải trong khoảng thời gian vài giây.

Nhưng các ảo ảnh chụp nhanh tức thời trang web đó, trước khi tất cả nội dung đều có thời gian tải.

Nó cũng không bao gồm dữ liệu và file hình ảnh (vì họ không nằm trong spec har)

Bạn có thể làm việc này bằng cách sửa đổi các tập tin ví dụ netsniff.js.

Tôi đã chia hai dự án đó và thực hiện những sửa đổi đó tại liên kết bên dưới. Xin lưu ý rằng tôi đã đặt hẹn giờ đợi 20 giây trước khi tạo har. Tôi cũng đã thêm một chút xử lý lỗi để bỏ qua các lỗi js. Bit xử lý lỗi đã được thêm vào để xử lý các phantomjs tạo các tệp har không hợp lệ nếu nó gặp lỗi. (Tôi cũng đã nhận xét chức năng loại trừ các tệp dữ liệu/hình ảnh)

Vì vậy, điều này có thể không chính xác như những gì bạn muốn. Nhưng đó là điểm khởi đầu cho bạn hoặc bất kỳ ai khác đang tìm cách sử dụng các hình ảnh ảo.

Sau những thay đổi này, tôi đã đi từ luôn nhận được bốn tập tin tài sản lên khoảng 25.

https://github.com/associatedpress/phantomjs/blob/netsniff-timer/examples/netsniff.js

Các vấn đề liên quan