2009-02-25 11 views
28

Wiem, że sprawdzanie pisowni nie jest doskonałe, ale stają się one bardziej użyteczne w miarę zwiększania rozmiaru tekstu. Jak mogę sprawdzić, czy strona ma tysiące stron?Jak sprawdzić pisownię witryny?

Edycja: Ze względu na skomplikowane przetwarzanie po stronie serwera, jedynym sposobem, w jaki mogę uzyskać strony, jest HTTP. Nie można go również zlecić podmiotowi zewnętrznemu.

Edytuj: Mam listę wszystkich adresów URL w witrynie, które muszę sprawdzić.

Odpowiedz

0

Można to zrobić za pomocą skryptu powłoki łączącego wget z aspell. Czy miałeś na myśli środowisko programistyczne?

Osobiście użyłbym Pythona z Beautiful Soup, aby wyodrębnić tekst z tagów i potokować tekst przez aspell.

1

Jeśli jest to jednorazowe i ze względu na liczbę stron do sprawdzenia, warto zastanowić się nad czymś takim jak spellr.us, które byłoby szybkim rozwiązaniem. Możesz wpisać adres URL swojej strony internetowej na stronie głównej, aby poznać sposób zgłaszania błędów w pisowni.

http://spellr.us/

ale jestem pewien, że istnieje kilka darmowych alternatyw.

0

Używaj szablonów (dobrze) ze swoją aplikacją webową (jeśli programujesz witrynę zamiast tylko pisania html) i edytor HTML, który zawiera sprawdzanie pisowni. Eclipse robi to dla jednego.

Jeśli nie jest to możliwe z jakiegoś powodu ... Tak, wget pobrać gotowych stron, a coś takiego:

http://netsw.org/dict/tools/ispell-html-mode.patch

2

Jeśli można uzyskać dostęp do zawartości witryny w postaci plików, można napisać mały skrypt powłoki Uniksa, który wykonuje zadanie. Poniższy skrypt wyświetli nazwę pliku, numeru wiersza i błędnie wpisanych słów. Jakość wyjścia zależy od słownika twojego systemu.

#!/bin/sh 

# Find HTML files 
find $1 -name \*.html -type f | 
while read f 
do 
     # Split file into words 
     sed ' 
# Remove CSS 
/<style/,/<\/style/d 
# Remove Javascript 
/<script/,/<\/script/d 
# Remove HTML tags 
s/<[^>]*>//g 
# Remove non-word characters 
s/[^a-zA-Z]/ /g 
# Split words into lines 
s/[  ][  ]*/\ 
/g ' "$f" | 
     # Remove blank lines 
     sed '/^$/d' | 
     # Sort the words 
     sort -u | 
     # Print words not in the dictionary 
     comm -23 - /usr/share/dict/words >/tmp/spell.$$.out 
     # See if errors were found 
     if [ -s /tmp/spell.$$.out ] 
     then 
       # Print file, number, and matching words 
       fgrep -Hno -f /tmp/spell.$$.out "$f" 
     fi 
done 
# Remove temporary file 
rm /tmp/spell.$$.out 
+0

+1 :: Nawet jeśli nie możesz pobrać plików źródłowych witryny, możesz użyć wget -m (tryb lustrzany) do spider-a teren. – garrow

+0

To nie filtruje JavaScript i CSS osadzonych w kodzie HTML. – Liam

+0

Również niektóre słowa, takie jak "at" i "me", są wypisane jako błędnie napisane słowa, nawet jeśli znajdują się w słowniku. – Liam

7

Lynx wydaje się być dobre na uzyskanie tylko tekst muszę (zawartość ciała i tekstu alt) i ignorując to, co nie muszę (wbudowany JavaScript i CSS).

lynx -dump http://www.example.com 

znaleźć również wszystkie adresy (w przeliczeniu na ich absolutną formie), na stronie, która może być filtrowana przy użyciu grepa:

lynx -dump http://www.example.com | grep -v "http" 

Te adresy mogą być również lokalne (file://) jeśli mamy użył wget do zwierciadlania witryny.

Napiszę skrypt, który przetworzy zestaw adresów URL za pomocą tej metody i wypisze każdą stronę do osobnego pliku tekstowego. Mogę następnie użyć istniejącego rozwiązania sprawdzającego pisownię, aby sprawdzić pliki (lub pojedynczy duży plik łączący wszystkie małe).

Spowoduje to zignorowanie tekstu w tytule i elementach meta. Te mogą być sprawdzane osobno.

+2

Możesz użyć wget -R, aby pobierać rekursywnie wszystkie swoje strony internetowe. Następnie uruchom rysia na lokalnych plikach i zacznij sprawdzać. – strager

0

Możesz sprawdzić biblioteki takich jak jspell.

2

Gorąco polecam Inspyder InSite, to komercyjne oprogramowanie, ale mają wersję próbną, jest warta swojej ceny. Używam go od lat do sprawdzania pisowni stron klientów. Obsługuje automatyzację/planowanie i może łączyć się z niestandardowymi listami słów CMS. Jest to również dobry sposób na sprawdzenie połączenia i generowanie raportów.

0

zrobiłem-tylko w języku angielskim sprawdzanie pisowni z Ruby tutaj: https://github.com/Vinietskyzilla/fuzzy-wookie

go wypróbować.

Jego główną wadą jest brak dokładnego słownika, który zawiera wszystkie formy każdego słowa (liczba mnoga, nie tylko liczba pojedyncza, "ma", a nie tylko "ma"). Zastąpienie własnego słownika, jeśli uda ci się go znaleźć lub ulepszyć, sprawi, że będzie on naprawdę niesamowity.


Poza tym, myślę, że najprostszy sposób sprawdzić pisownię pojedynczej strony jest naciśnij Ctrl + A (lub Cmd + a), aby zaznaczyć cały tekst, a następnie skopiuj i wklej go w polu tekstowym wielowierszowego na strona internetowa. (Na przykład: <html><head></head><body><textarea></textarea></body></html>.) Twoja przeglądarka powinna podkreślać wszystkie błędne wyrazy.

+0

O tak, ta druga opcja nie zadziała zbyt dobrze dla "tysięcy stron". –

0

@Anthony Roy Zrobiłem dokładnie to, co zrobiłeś. Przepuściłem stronę przez Aspell przez Pyenchant. Mam słowniki angielskie (GB, CA, US) do użytku na mojej stronie https://www.validator.pro/. Skontaktuj się ze mną, a skonfiguruję jednorazową pracę, aby sprawdzić 1000 stron lub więcej.

Powiązane problemy