2009-04-17 11 views
12

Xin chào, tôi muốn tạo một ứng dụng dành cho máy tính để bàn (C# prob) có thể đánh cắp hoặc điều khiển biểu mẫu trên trang web của bên thứ ba. Về cơ bản, tôi nhập dữ liệu của mình vào biểu mẫu trong ứng dụng dành cho máy tính để bàn, nó sẽ chuyển đến trang web của bên thứ ba và sử dụng tập lệnh hoặc bất kỳ thứ gì trong nền, nhập dữ liệu của tôi ở đó (bao gồm thông tin đăng nhập của tôi) và nhấp vào nút gửi cho me.I chỉ muốn tránh tải trình duyệt lên!Whats ngôn ngữ cào màn hình tốt nhất?

Không thực hiện nhiều công việc trong lĩnh vực này, tôi đã tự hỏi một ngôn ngữ kịch bản như perl, python, ruby, vv có cho phép tôi làm như vậy không? Hoặc đơn giản là làm tất cả các cào bằng cách sử dụng C# và .net? IYO nào tốt nhất? Tôi đã suy nghĩ kịch bản như có thể cần phải móc vào cùng một kịch bản một cái gì đó từ các ứng dụng trên nền tảng khác nhau (ví dụ như điện thoại di động symbian, nơi tôi sẽ không thể phát triển nó trong C# như tôi sẽ phiên bản máy tính để bàn).

Nó không phải là một ứng dụng web nếu không tôi cũng có thể sử dụng trang web gốc. Tôi nhận ra tất cả những âm thanh vô nghĩa nhưng sự tự động hóa cho hình thức cụ thể này sẽ là một tiết kiệm thời gian thực cho tôi.

+1

Đây là câu hỏi về cào web không cạo màn hình. Vui lòng thử lại. –

+1

Đã thêm thẻ cào web. Không xóa thẻ cào màn hình. –

Trả lời

2

Chức năng biểu thức chính quy được xây dựng của IMO Perl và khả năng thao tác văn bản sẽ làm cho nó trở thành một ứng cử viên khá tốt cho việc cạo màn hình.

4

C# là hơn thích hợp cho màn hình của bạn cạo nhu cầu. Chức năng Regex của .NET thực sự rất hay. Tuy nhiên, với một nhiệm vụ đơn giản như vậy, bạn sẽ khó tìm một ngôn ngữ không làm những gì bạn muốn tương đối dễ dàng. Xem xét bạn đã lập trình trong C#, tôi muốn nói với điều đó.

Chức năng cạo màn hình tích hợp cũng ở trên cùng.

26

Đừng quên xem BeautifulSoup, được khuyến nghị sử dụng.

Xem, ví dụ: options-for-html-scraping. Nếu bạn cần chọn ngôn ngữ lập trình cho tác vụ này, tôi muốn nói Python.

Giải pháp trực tiếp hơn cho câu hỏi của bạn, xem twill, một ngôn ngữ kịch bản đơn giản để duyệt web.

6

Tôi sử dụng C# để cạo. Xem gói hữu ích HtmlAgilityPack. Để phân tích các trang, tôi hoặc sử dụng XPATH hoặc các biểu thức chính quy. .NET cũng có thể dễ dàng xử lý các cookie nếu bạn cần.

Tôi đã viết một lớp nhỏ bao bọc tất cả các chi tiết tạo WebRequest, gửi, đợi phản hồi, lưu cookie, xử lý lỗi mạng và truyền lại, v.v. - kết quả cuối cùng là cho hầu hết các trường hợp Tôi chỉ có thể gọi "GetRequest \ PostRequest" và nhận lại HtmlDocument.

4

Bạn có thể thử bằng cách sử dụng NET HTML Agility Pack:

http://www.codeplex.com/htmlagilitypack

"Đây là một phân tích cú pháp HTML nhanh nhẹn rằng xây dựng một đọc/viết DOM và hỗ trợ XPath đơn giản hoặc XSLT (bạn thực sự don Không cần phải hiểu XPath và XSLT để sử dụng nó, đừng lo lắng ...) Nó là một thư viện mã .NET cho phép bạn phân tích cú pháp "ra khỏi web" các tệp HTML. Trình phân tích cú pháp rất khoan dung với "thực thế giới "HTML không đúng định dạng. Mô hình đối tượng rất giống với những gì đề xuất System.Xml, nhưng đối với các tài liệu HTML (hoặc các luồng)."

0

Hoặc gắn bó với WebClient trong C# và một số thao tác chuỗi.

2

Ruby là khá tuyệt vời! ... thử Hpricot của nó/cơ giới hóa

1

HTML Agility Pack (c#)

  1. XPath được borked, cách html được làm sạch để làm cho nó phù hợp xml nó sẽ thả thẻ và bạn phải điều chỉnh các biểu hiện để làm cho nó làm việc.
  2. đơn giản để sử dụng

Mozilla Parser (Java)

  1. hỗ trợ XPath rắn
  2. bạn phải thiết lập các biến môi trường trước khi nó sẽ làm việc đó là một nỗi đau
  3. đúc giữa org.dom4j.Node và org.w3c.dom.Node để nhận các thuộc tính khác nhau là một nỗi đau thực sự
  4. chết trên html không chuẩn (0.3 sửa lỗi thi s)
  5. giải pháp tốt nhất cho XPath
  6. vấn đề truy cập vào dữ liệu trên Nodes trong một NodeList

    sử dụng một for (int i = 1; i < = list_size; i ++) để có được xung quanh đó

Beautiful Soup (Python)

tôi không có nhiều kinh nghiệm nhưng đây là những gì tôi đã tìm thấy

  1. không XPath hỗ trợ
  2. đẹp giao diện để pathing html

tôi thích Mozilla HTML Parser

0

Tôi đề nghị thứ hai cho python (hoặc Beautiful Soup). Tôi hiện đang ở giữa một dự án cạo màn hình nhỏ bằng cách sử dụng python, và việc xử lý tự động của python 3 về những thứ như xác thực cookie (thông qua CookieJar và urllib) rất đơn giản hóa mọi thứ. Python hỗ trợ tất cả các tính năng cao cấp hơn bạn có thể cần (như regexes), cũng như có lợi ích của việc có thể xử lý các dự án như thế này một cách nhanh chóng (không quá nhiều chi phí trong việc xử lý các công cụ mức thấp). Nó cũng tương đối đa nền tảng.