2012-01-26 39 views
7

Có một trang web được tạo bằng cách sử dụng ColdFusion (không chắc chắn điều này có quan trọng hay không). Tôi cần phải tương tác với trang web này. Những điều chính tôi cần làm là điều hướng đến các trang khác nhau và nhấp vào nút.Tương tác với các trang web trong C#

Tôi đã đưa ra hai ý tưởng về cách thực hiện việc này. Đầu tiên là sử dụng điều khiển WebBrowser. Với điều này, tôi chắc chắn có thể điều hướng các trang và nhấp vào nút (Theo This).

Cách khác là tương tác trực tiếp với html. Bạn không chắc chắn chính xác cách thực hiện việc này, nhưng tôi giả sử tôi có thể nhấp vào các nút hoặc sử dụng các yêu cầu HTML để tương tác với trang.

Có ai có đề xuất về cách nào tốt hơn không? Có cách nào tốt hơn mà tôi chưa từng nghĩ đến không?

+1

Như những người khác đã đăng dưới đây, cách bình thường để scape một trang web trong .NET là sử dụng HttpWebRequest. Bạn có thể dễ dàng điều hướng trang web bằng cách sử dụng mã và đưa ra yêu cầu đăng/nhận để mô phỏng tương tác (nhấn nút). Bạn nên ghi lại quá trình sử dụng Fiddler (proxy MIỄN PHÍ), điều này sẽ cho phép bạn xem toàn bộ quá trình về cách bạn tương tác với trang web, vì vậy bạn có thể tạo lại nó bằng mã. HtmlAgilityPack là một công cụ tuyệt vời để phân tích HTML, có thể cần thiết tùy thuộc vào những gì bạn đang cạo. – Zachary

+2

Thử [WatiN] (http://watin.org/). – MUS

Trả lời

7

Tôi muốn sử dụng Html AgilityPack để phân tích cú pháp html và sau đó thực hiện POST và GET một cách thích hợp với HttpWebRequest.

Trong khi nó có thể sử dụng điều khiển WebBrowser để mô phỏng nhấp chuột và chuyển hướng bạn sẽ có được kiểm soát nhiều hơn với Html AgilityPack và HttpWebRequest liên quan đến những gì được gửi

3

Bạn có xem xét Selenium? API WebDriver khá tốt và cho phép nhiều thứ về tự động hóa trang web.

+0

liên kết bị hỏng tại đây – Darkloki

+0

@Darkloki, url đã được sửa, cảm ơn – Vinzz

2

HtmlAguilityPack hữu ích cho việc kéo các phần tử web và tìm các thẻ dễ dàng. Tuy nhiên, nếu bạn cần "điều khiển" phiên web từ xa, tôi thích sử dụng WatiN. Nó tự lập hóa đơn như một khung kiểm thử đơn vị web, nhưng nó rất hữu ích bất cứ lúc nào bạn cần giả mạo một phần trình duyệt. Hơn nữa, nó có thể điều khiển từ xa các trình duyệt khác nhau đủ tốt cho hầu hết các tác vụ bạn cần (như tìm nút và đẩy nó, hoặc trường văn bản và điền văn bản nếu bạn cần đăng nhập).

1

tại sao không gửi trực tiếp url? đó là những gì nút bấm sẽ làm. sử dụng WebRequest.Create bạn có thể gửi trực tiếp đến url. không cần phải tải, phân tích cú pháp và "nhấp" nút.

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