2012-01-26 12 views
7

Istnieje strona internetowa utworzona za pomocą ColdFusion (nie wiem, czy to ma znaczenie, czy nie). Potrzebuję interakcji z tą witryną. Najważniejsze rzeczy, które muszę zrobić, to przejście do różnych stron i kliknięcie przycisków.Interakcja ze stronami internetowymi w języku C#

Mam dwa pomysły, jak to zrobić. Pierwszym jest użycie kontrolki WebBrowser. Dzięki temu mogłem z pewnością nawigować po stronach i klikać przyciski (zgodnie z This).

Innym sposobem jest bezpośrednia interakcja z html. Nie jestem pewien, jak to zrobić, ale zakładam, że mogę kliknąć przyciski lub użyć żądań HTML do interakcji ze stroną.

Czy ktoś ma zalecenie, która droga jest lepsza? Czy istnieje lepszy sposób, o którym nie pomyślałem?

+1

Jak napisali inni, poniżej, normalnym sposobem scape witryny w .NET jest użycie HttpWebRequest. Możesz łatwo poruszać się po witrynie za pomocą kodu i wysyłania postów/otrzymywania żądań w celu symulacji interakcji (naciśnięcia przycisków). Należy nagrać proces za pomocą Fiddlera (BEZPŁATNE proxy), który pozwoli ci zobaczyć cały proces interakcji z witryną, dzięki czemu możesz go ponownie utworzyć w kodzie. HtmlAgilityPack to doskonałe narzędzie do analizowania kodu HTML, które może być potrzebne w zależności od tego, co skrobiesz. – Zachary

+2

Wypróbuj [WatiN] (http://watin.org/). – MUS

Odpowiedz

7

Użyłbym Html AgilityPack do parsowania html, a następnie POST i GETs odpowiednio z HttpWebRequest.

Chociaż może to być możliwe, aby używać formantu WebBrowser do symulowania kliknięcia i nawigacja dostaniesz większą kontrolę z HTML AgilityPack i HttpWebRequest dotyczące tego, co zostanie wysłana

3

Czy rozważałeś Selenium? Interfejs API WebDriver jest całkiem niezły i pozwala na wiele rzeczy w zakresie automatyzacji witryny.

+0

zepsuty link tutaj – Darkloki

+0

@Darkloki, adres URL naprawiony, dzięki – Vinzz

2

HtmlAguilityPack jest przydatny do ciągnięcia elementów sieci i łatwego znajdowania tagów. Jeśli jednak chcesz zdalnie sterować sesją w sieci, wolę używać numeru WatiN. Określa się ona jako struktura testowania jednostek sieciowych, ale jest bardzo przydatna w każdej chwili, gdy trzeba sfałszować sekcję przeglądarki. Co więcej, może zdalnie sterować różnymi przeglądarkami wystarczająco dobrze dla większości zadań, których będziesz potrzebować (takich jak znajdowanie przycisku i przesuwanie go, lub pola tekstowego i wypełnianie tekstu, jeśli potrzebujesz logowania).

1

dlaczego nie przesłać bezpośrednio adresu URL? to właśnie zrobi kliknięcie przycisku. przy użyciu WebRequest.Create można przesłać bezpośrednio do adresu URL. nie ma potrzeby ładowania, analizowania i "klikania" przycisku.

Powiązane problemy