Sziasztok!
Van az alábbi PHP script, ami működik egy linuxos gépen, tehát a tinyurl-ról megkapom az eredeti linket (a valami nem valós!!! :)):
<?php
$u = 'https://tinyurl.com/valami';
function reverse_tinyurl($url){
$url = explode('.com/', $url);
$url = 'https://preview.tinyurl.com/'.$url[1];
$preview = file_get_contents($url);
preg_match('/redirecturl" href="(.*)">/', $preview, $matches);
return $matches[1];
}
echo '<a href="' . reverse_tinyurl($u) . '">Értekezlet (Google CHROME alatt nyisd meg!!!)</a>';
?>
Ezt szeretném megcsinálni Python alatt, de akárhogy küzdök, nem sikerül.
Próbálom használni a dns.resolver modult, hogy a scripten belül megadjam a DNS szervernek a 8.8.8.8-at, de Timeout-ot dob a script.
Van ötletetek? A resolv.conf-ban benne van egyébként a 8.8.8.8
Hozzászólások
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
Ezt próbáltam és csak hibát kaptam, hogy a szerver válasz elmarad időtúllépés miatt :(
ez ugyan az a kód (ugyanolyan rossz megvalósítással), mint a PHP
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
És ez működik!
Hogyan lehet szebben megcsinálni? Ki akarom terjeszteni több url rövidítő szolgáltatást nyújtó kiszolgálóra is, ne legyen specifikus.
php-ban pl. a parse_url() + curl_*()
kell egy előtét, ami az url alapján a megfelelő, szolgáltatás specifikus parzert hívja.
requests: http (es hasonlo) requesteket kuld
bs4: beautifulsoup, html (meg hasonlo) elemzo, celszeru a html5lib-et vagy hasonlit is feltenni hozza
re: regularis kifejezes modul
Ezekkel a legtobb webes elemzo osszedobhato eleg hamar.
Amugy a php-s megoldasod is csak akkor megy, ha engedelyezik a file_get_contents-hez a http url-ek hasznalatat, ami sok helyen tiltva van. Ilyenkor pl. libcurl-el erheted el ugyanezt.
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin
Jövő héten próbálom, és beküldöm az esetleges hibákat ill. ha lesz, akkor a megoldást is.
Forrás: link
Ez sajnos elhasal az alábbi hibákkal:
Péntek éjjel telefonon próbáltam ki, működött.
Most gépen csináltam egy teljesen szűz virtuális környezetet, csupán a requests-et telepítettem fel rá (függőségeivel) és így is működik nálam (hiba nélkül lefut):
Kreáltam az eredeti linkeddel egy másik rövidítettet és ezt is "felnyitja" a szkript :)
Az egészet feltettem a pastebin oldalra is.
igy van, siman mukodik, faek egyszeru.
Szerintem a mi hálózatunkban van valamilyen korlátozás erre, illetve észrevettem, hogy a 8.8.8.8 ping-elése átirányítódik, de a 8.8.4.4-et nem engedi a hálózatunk ping-elni. Szerintem a NISZ szivat ilyen szinten.
A pastebin-es url-t sem tudom betölteni, nemhogy a bit.ly-ost :(
Ezért volt furcsa, hogy az általam küldött PHP kód ment amit közzétettem, de nem találtam Python megfelelőjét. A Curl-os változatot kipróbálom.
de url-hez a teljes url ird ne csak a path-ot!!!