2009-04-22 15 views
6

Tôi đang sử dụng BeautifulSoup và urllib2 để tải xuống các trang HTML và phân tích chúng. Vấn đề là với các trang HTML được tạo sai. Mặc dù BeautifulSoup rất giỏi xử lý HTML được định dạng sai nhưng vẫn không tốt bằng Firefox.Sử dụng Gecko/Firefox hoặc Webkit có phân tích HTML trong python

Xem xét Firefox hoặc Webkit được cập nhật và linh hoạt hơn khi xử lý HTML, tôi cho rằng nó lý tưởng để sử dụng chúng để xây dựng và chuẩn hóa cây DOM của một trang và sau đó điều khiển nó thông qua Python.

Tuy nhiên, tôi không thể tìm thấy bất kỳ ràng buộc python nào cho cùng. Bất cứ ai có thể đề xuất một cách?

Tôi đã chạy vào một số giải pháp chạy một tiến trình Firefox không đầu và thao tác nó thông qua python nhưng có sẵn một giải pháp bổ sung hơn.

+0

nó có thể là bạn đang sử dụng súp đẹp 3.1 rằng "không tồi tệ hơn đáng kể về HTML thực tế hơn phiên bản 3.0.7a không"? [1] phải phân tích một số nội dung gần đây bản thân mình và thấy rằng 3.0.7 thực sự xử lý mọi thứ tốt hơn nhiều. sử dụng easy_install để chuyển sang 3.0.7a: sudo easy_install beautifulsoup == 3.0.7a [1] http://www.crummy.com/software/BeautifulSoup/3.1-problems.html –

Trả lời

1

Có lẽ pywebkitgtk sẽ làm những gì bạn cần.

+1

không có. pywebkitgtk là "chỉ đơn thuần là một trình hiển thị trang". bạn muốn http://www.gnu.org/software/pythonwebkit là một phiên bản được sửa đổi nhiều, kết hợp với webkit (!) và cho phép truy cập vào DOM. tất cả 3.000 chức năng và tất cả 20.000 thuộc tính. – user362834

1

thấy http://wiki.python.org/moin/WebBrowserProgramming

có khá nhiều lựa chọn - tôi đang duy trì trang trên để tôi không giữ lặp lại bản thân mình.

bạn nên xem bộ đồ ngủ-máy tính để bàn: xem ví dụ/uitest ví dụ vì chúng tôi sử dụng chính xác mẹo này để lấy bản sao của trang HTML "out", để trình biên dịch python-to-javascript có thể được kiểm tra bằng cách so sánh kết quả trang sau mỗi lần kiểm tra đơn vị.

mỗi thời gian chạy được hỗ trợ và sử dụng bởi bộ đồ ngủ-máy tính để bàn có khả năng cho phép truy cập vào thuộc tính "innerHTML" của phần tử cơ thể của tài liệu (và nhiều hơn thế nữa).

dòng dưới cùng: nó là tầm thường để làm những gì bạn muốn làm, nhưng bạn phải biết nơi để xem xét để tìm hiểu làm thế nào để làm điều đó.

l.

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