Skrypt sprawdzający domain authority

Odpowiedz Nowy wątek
2013-01-23 17:57
Userr
0

Jest taka strona http://moonsy.com/domain_authority/ wyświetlająca domain authority strony.
Próbowałem z niej sczytać to domain authority za pomocą cURL:

<?php
        $postFields['domain'] = 'onet.pl';
        $postFields['qType'] = 'dA';
        $postFields['Submit'] = 'CHECK';

        $ch = curl_init('http://moonsy.com/domain_authority/');

        curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $this->site = curl_exec($ch);
        echo $this->site;
?>

Do przycisku submit "CHECK" wszystko jest wyświetlane poprawnie, ale zamiast domain authority strony wyświetlany jest taki komunikat:

Please enable cookies in your browser for use this tool.
If you are using incognito mode please disable it for use this tool.

Pierwszy raz się z czymś takim stykam. Z czego to może wynikać?

Pozostało 580 znaków

2013-01-23 20:17
0

Że strona z której pobierasz dane jest wredna i sprawdza czy wysyłasz jakieś ciasteczko, które pewnie wysyła wraz z otwarciem pierwszej strony.

Pozostało 580 znaków

2013-01-23 21:30
Userr
0

Czy można coś z tym zrobić?

Pozostało 580 znaków

2013-01-23 21:39
0

włącz w curlu obsługę ciastek, przez curl_setopt($ch, CURLOPT_COOKIEFILE, $plik_z_cookiesami);

curl_setopt($ch, CURLOPT_COOKIEFILE, tempnam(sys_get_temp_dir(), 'cookie')); // plik z ciachami

potem zwyczajnie ściągnij stronę główną i dopiero potem tę którą chcesz
jeśli chcesz przyspieszyć ściąganie niepotrzebnej strony to możesz ściągnąć tylko nagłówek metodą HEAD:

curl_setopt($ch, CURLOPT_NOBODY, true);

Pół giga extra na dropboxie? Pół giga extra na dropboxie! Tyle wygrać! >>Klik here<<
edytowany 3x, ostatnio: unikalna_nazwa, 2013-01-23 21:41

Pozostało 580 znaków

2013-01-23 22:58
Userr
0

unikalna_nazwa, spróbowałem napisać skrypt wg. Twoich zaleceń:

<?php
$ckfile = tempnam ("/tmp", "cookie"); // plik cookie

$ch = curl_init ("http://moonsy.com/"); // najpierw strona glowna
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

$postFields['domain'] = 'onet.pl';
$postFields['qType'] = 'dA';
$postFields['Submit'] = 'CHECK';
$ch = curl_init ("http://moonsy.com/domain_authority/"); // a natepnie strona na ktorej mi zalezy
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

echo $output;
curl_close($ch);
?>

ale coś mi nie wyszło, bo nadal strona nie zwraca domain authority, tylko jest ten błąd.
Co więc robię źle?

Pozostało 580 znaków

2013-01-23 23:31
0

@unikalna_nazwa podał Ci nie do końca poprawne rozwiązanie.
COOKIEFILE służy do wysyłania istniejących ciasteczek, natomiat ciasteczka odbierane będą odrzucane. Do tego jest COOKIEJAR (konkretniej: CURLOPT_COOKIEJAR). Ustaw także tę opcję, ścieżka niech będzie taka sama jak COOKIEFILE. I powinno ruszyć.


edytowany 1x, ostatnio: dzek69, 2013-01-23 23:31

Pozostało 580 znaków

2013-01-23 23:35
0
dzek69 napisał(a):

@unikalna_nazwa podał Ci nie do końca poprawne rozwiązanie.
COOKIEFILE służy do wysyłania istniejących ciasteczek, natomiat ciasteczka odbierane będą odrzucane. Do tego jest COOKIEJAR (konkretniej: CURLOPT_COOKIEJAR). Ustaw także tę opcję, ścieżka niech będzie taka sama jak COOKIEFILE. I powinno ruszyć.

no tak faktycznie - zapomniałem o COOKIEJAR
w każdym razie, przetestowałem teraz tę stronkę i okazuje się że strona w ogóle nie wysyła już mi plików cookie po ich jednorazowym skasowaniu i już nie mogę sprawdzać domen na tej stronie
zupełnie jakbym dostał bana na IP


Pół giga extra na dropboxie? Pół giga extra na dropboxie! Tyle wygrać! >>Klik here<<
nie cytujemy ostatniego posta w całości - jaki w tym sens? - dzek69 2013-01-24 00:50
klikam często "Cytuj" zamiast "odpowiedz" bo jest w wygodniejszym miejscu i mam wgląd do posta do którego się odnoszę (w tym przypadku chciałem sobie z lenistwa skopiować "COOKIEJAR" ;) no i czasem zapominam usunąć cytowany tekst - unikalna_nazwa 2013-01-24 00:59
"szybka odpowiedź" jest pozbawiona tej wady - ŁF 2013-01-25 19:57
nie bo dalej nie da się skopiować tekstu przy użyciu samej klawiatury ;) - unikalna_nazwa 2013-01-25 20:06

Pozostało 580 znaków

2013-01-24 00:49
0

Ta strona celowo chwali się, że nie ma CAPTCHY, bo wie, że przeciwko botom i tak będzie skuteczna.. Wszystko da się oszukać, ale tak proste mechanizmy jak ten z posta - to było wiadome, że nie przejdzie ;]


Pozostało 580 znaków

2013-01-24 12:14
Userr
0
unikalna_nazwa napisał(a):

no tak faktycznie - zapomniałem o COOKIEJAR
w każdym razie, przetestowałem teraz tę stronkę i okazuje się że strona w ogóle nie wysyła już mi plików cookie po ich jednorazowym skasowaniu i już nie mogę sprawdzać domen na tej stronie
zupełnie jakbym dostał bana na IP

Po wstawieniu do skryptu:

curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 

przy pierwszym uruchomieniu tego skryptu też miałem komunikat o banie:

Automatic queries and proxy checks
are not allowed at our website.

IP ** was blocked, because
we are detected automatic queries or proxy checks
from this IP to Domain Authority .

Taki sam komunikat dostaję gdy normalnie jako użytkownik wchodzę na stronę:
http://moonsy.com/domain_authority/

Natomiast przy następnych uruchomieniach skryptu nie ma już komunikatu o banie, tylko wyświetla się ten komunikat:

Please enable cookies in your browser for use this tool.
If you are using incognito mode please disable it for use this tool.

Pozostało 580 znaków

2013-01-24 12:18
Userr
0
dzek69 napisał(a):

Ta strona celowo chwali się, że nie ma CAPTCHY, bo wie, że przeciwko botom i tak będzie skuteczna.. Wszystko da się oszukać, ale tak proste mechanizmy jak ten z posta - to było wiadome, że nie przejdzie ;]

Mi po prostu chodzi o możliwość odczytania domain authority.
Pomyślałem, że pójdę po najmniejszej linii oporu i zrobię to korzystając z http://moonsy.com/domain_authority/ + cURL, ale skoro ta strona ma specjalne zabezpieczania, to może lepiej będzie poszukać innego sposób na odczytanie domain authority?

Czy ma ktoś jakieś pomysły?

Pozostało 580 znaków

2013-01-24 13:34
0

Tak, są do tego gotowce, widzę, że nawet za darmo: http://code.google.com/p/seostats/#seostats.google.php

Czasem warto zajrzeć do Googli przed wynajdywaniem koła na nowo ;)


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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