2009-04-17 21 views
12

Witam Chcę utworzyć aplikację na komputer (C# prob), która przechwytuje lub manipuluje formularzem na stronie internetowej innej firmy. Zasadniczo wprowadzam moje dane w formularzu w aplikacji komputerowej, przechodzę do strony trzeciej i za pomocą skryptu lub cokolwiek innego w tle wprowadzam moje dane (w tym mój login) i klikam przycisk przesyłania dla mnie.I po prostu chcesz uniknąć ładowania przeglądarki!Jaki jest najlepszy język skriningu ekranu?

Nie robiąc dużo (żadnych!) Pracy w tej dziedzinie zastanawiałem się, czy język skryptowy, taki jak perl, python, ruby ​​itp., Pozwoliłby mi na takie? Lub po prostu zrobić to wszystkie skrobanie przy użyciu C# i .net? Który z nich jest najlepszy?

Myślałem, że skrypt może wymagać podpięcia w tym samym skrypcie czegoś z aplikacji na różnych platformach (np. Symbian mobile, gdzie nie byłbym w stanie rozwinąć go w języku C#, tak jak ja w wersji na komputery).

To nie jest aplikacja internetowa, w przeciwnym razie mogę równie dobrze korzystać z oryginalnej witryny. Rozumiem, że to wszystko brzmi bezcelowo, ale automatyzacja dla tej konkretnej formy byłaby dla mnie oszczędna.

+1

To jest pytanie dotyczące skrobania w Internecie, a nie skrobania ekranu. Odśwież to, proszę. –

+1

Dodano tag skrobaczki internetowej. Nie usunięto tagu zgrywania ekranu. –

Odpowiedz

2

IMO Perl ma wbudowane funkcje wyrażania regularnego i zdolność do manipulowania tekstem, co czyni go dobrym pretendentem do skrobania ekranu.

4

C# jest więcej niż odpowiednia dla Twojego ekranu skrobanie potrzeb. Funkcja Regex firmy .NET jest naprawdę fajna. Jednak przy tak prostym zadaniu trudno będzie znaleźć język, który nie rób tego, co chcesz stosunkowo łatwo. Biorąc pod uwagę, że już programujesz w C#, powiedziałbym, że trzymaj się tego.

Wbudowana funkcja skrobania ekranu jest również na najwyższym poziomie.

26

Nie zapomnij spojrzeć na BeautifulSoup, jest wysoce zalecane.

Zobacz na przykład options-for-html-scraping. Jeśli chcesz wybrać język programowania dla tego zadania, powiedziałbym: Python.

Bardziej bezpośrednie rozwiązanie tego problemu, patrz: twill, prosty język skryptowy do przeglądania stron internetowych.

6

Używam C# do skrobania. Zobacz pomocny pakiet HtmlAgilityPack. Do analizowania stron używam XPATH lub wyrażeń regularnych. .NET może również łatwo obsługiwać pliki cookie, jeśli tego potrzebujesz.

Napisałem małą klasę, która zawiera wszystkie szczegóły dotyczące tworzenia WebRequest, wysyłania, oczekiwania na odpowiedź, zapisywania plików cookie, obsługi błędów sieciowych i retransmisji itd. - efekt końcowy jest taki, że w większości sytuacji Mogę po prostu wywołać "GetRequest \ PostRequest" i odzyskać dokument HtmlDocument.

4

można spróbować przy użyciu .NET HTML Agility dodatku:

http://www.codeplex.com/htmlagilitypack

„To jest zwinny parser HTML, który buduje odczytu/zapisu DOM i obsługuje zwykły XPATH lub XSLT (faktycznie don 'T MUSISZ zrozumieć XPATH i XSLT, aby go użyć, nie martw się ...) Jest to biblioteka kodu .NET, która pozwala analizować pliki HTML "out of the web" .Parser jest bardzo tolerancyjny z "prawdziwymi świat "źle skonstruowany HTML. Model obiektowy jest bardzo podobny do tego, który proponuje System.Xml, ale do dokumentów HTML (lub strumieni)."

0

Albo trzymać z WebClient w C# i pewnych manipulacji smyczkowych.

2

Ruby jest dość wielki! ... spróbować jej hpricot/mechanizacji

1

HTML Agility Pack (c#)

  1. XPath jest borked, drogę html jest czyszczony, aby xml zgodny będzie spadać tagi i trzeba regulować ekspresję aby zmusić go do pracy.
  2. prosty w użyciu

Mozilla Parser (Java)

  1. Stałe wsparcie XPath
  2. trzeba ustawić zmienne środowisko zanim będzie działać co jest ból
  3. odlewania między org.dom4j.Node i org.w3c.dom.Node, aby uzyskać różne właściwości jest prawdziwy ból
  4. umiera na niestandardowym html (0.3 poprawki e)
  5. najlepszym rozwiązaniem dla XPath
  6. problemy z dostępem do danych na węzłach w liście węzłów

    użyć for (int i = 1; i < = list_size; i ++), aby ominąć że

Beautiful Soup (Python)

nie mam dużego doświadczenia, ale oto co znalazłem

  1. brak wsparcia XPath
  2. ładny interfejs pathing html

Wolę Mozilla HTML Parser

0

I drugi zalecenie dla Pythona (lub Piękne Soup). Obecnie pracuję nad małym projektem przeskanowania ekranu przy użyciu Pythona, a automatyczna obsługa pythona 3, np. Uwierzytelnianie plików cookie (poprzez CookieJar i urllib) znacznie upraszcza. Python obsługuje wszystkie bardziej zaawansowane funkcje, których możesz potrzebować (np. Wyrażeń regularnych), a także ma możliwość szybkiego obsługiwania projektów takich jak ten (nie ma zbyt dużego nakładu pracy przy rozwiązywaniu problemów o niskim poziomie). Jest także stosunkowo wieloplatformowy.

Powiązane problemy