[C#/dość ogólne] Duża różnica pomiedzy podgladem strony (w FF) a zapisaną na dysku.

0

Hi! Mam taki problem: Podglądam stronę w FF (CTRL+U) i jest w miarę OK uporządkowana, widać co jest co i gdzie co jest. Natomiast po zapisaniu źródła strony do pliku txt / html dostaję taki śmietnik, że nie mogę nic znaleźć, nie mówiąc o jakiejkolwiek próbie analizowania tego. A potrzebuje pewne dane wyciągnąć z tej strony przy użyciu Visual Studio Express C# 2010. Jak sobie radzicie z takim problemem? Czy jest może jakieś rozszerzenie C# który by porządkował kod, robił wcięcia, itd.?

GROMek

0

Zapisujesz pewnie stronę przez "Plik" -> "Zapisz jako", a to w gruncie rzeczy modyfikuje kod, podmieniając ścieżki, tak, by strona działała w miarę poprawnie lokalnie itd.
Nie potrzebujesz tak naprawdę ładnie sformatowanej strony. Masz dwie opcje. Jeżeli nie potrzebujesz parsować całej strony, a chcesz wyciągnąć z niej pewne wartości, najlepiej będzie użyć wyrażeń regularnych (regex). Druga to użycie parsera XML i dalej dostęp do elementów drzewa DOM przez XPath, Linq itd. Minus tego drugiego rozwiązania jest taki, że każdy błąd składniowy wyłoży ci parser; nie jest tak wyrozumiały jak przeglądarki.
Więc w twoim przypadku potraktowałbym źródło strony jako tekst i użył regexpów.

0

Hi!

Wyrażenia regularne to czarna magia dla mnie. Wole skorzystać chyba z wyszukiwania ciągów stringów, itp. Ale dzięki za feedback!

GROMek

0

While it is true that asking regexes to parse arbitrary HTML is like asking Paris Hilton to write an operating system, it's sometimes appropriate to parse a limited, known set of HTML.

Nikt nie chce tutaj przecież pisać parsera HTML przy użyciu wyrażeń regularnych, tylko wyciągnąć kilka wartości ze znanego kodu. Nie widzę powodów dlaczego mielibyśmy nie użyć w tym wypadku regexów.

0

OK. Mam linie typu:

Tak bedzie lepiej:

			<li><a href="http://www.Excel4You.pl/Excel-2003/" title="Tabele przestawne bla bla bla........................">Excel - lekcja 232</a></li>

Jakimi wyrażeniami regularnymi wyciągnę adres i anchor ? Pomoże ktoś? Dzięki!

GROMek

1

<li><a href="(?<url>.*?)" title=".*?">(?<text>.*?)</a></li>
Anchor co? Anchor to jest element a.

0

Hi!

Działą bezbłędnie !!! :) SUPER. Dzięki wielkie!

Wpisałeś to z głowy, czy korzystając z jakiegoś softu wspomagającego? (wiem, wiem - w Google jest wszystko :)).

GROMek

1 użytkowników online, w tym zalogowanych: 0, gości: 1