![eigenfisting](https://2img.net/h/eigenfisting.altervista.org/_altervista_ht/eigenfisting_smaller.png)
eigenfisting Per parlare di università, politica, attualità e .. dai non diciam cazzate, solo fisting e foto del giusto che dorme.. |
|
|
Author |
Message |
Okram_87
Age :
Join date : 2008-11-27
Posts : 101
Location :
|
Subject: Request response Sun Dec 06, 2009 10:50 pm |
|
|
io non ho fatto protocolli quidi sono a 0 in questo argomento...magari capone ve l'ha spiegato... la domanda è:
da quanto ho capito facendo reverse engineering da un crawler python, quando faccio una richiesta HTTP viene ritornata una request response composta, tra le altre cose, da un body.... è possibile analizzare questo body per salvare, ad esempio, solo le immagini in esso contenute? |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
seitan666
![seitan666](https://2img.net/u/4111/22/39/77/avatars/6-91.jpg)
Age :
Join date : 2008-11-26
Posts : 203
Location :
|
Subject: Re: Request response Mon Dec 07, 2009 3:02 pm |
|
|
Beh... devi fare crawling http? in sostanza devi emulare un browser: fai una richiesta HTTP, ti torna un intestazione ed un file (tipicamente un file html) Se ti interessano solo le immagini dovresti cercare all'interno del file html tutti i tag <img>, ma se le vuoi proprio tutte dovresti anche cercare nei file CSS e JavaScript, e potrebbe diventare abbastanza lungo e complicato... Una volta trovati gli indirizzi alle immagini, fai un'altra richiesta per ogni immagine che ti serve.. e ti torna il file con l'immagine.. |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
PsycoYack
![PsycoYack](https://2img.net/u/4111/22/39/77/avatars/3-63.png)
Age :
Join date : 2008-11-26
Posts : 267
Location :
|
Subject: Re: Request response Mon Dec 07, 2009 3:39 pm |
|
|
io ti consiglierei di cercare solo le immagini esplicite in img, perchè quelle css sono ancora fattibili, ma per javascript praticamente dovresti avere un interprete javascript per cagarle fuori... comunque le espressioni regolari rullano, fai una ricerca su tutto il testo di "<img.+?src=([\"']([^\"']+)[\"']|([^\s]+))" (case insensitive ovviamente, in realtà funziona solo se le espressioni regolari sono compatibili perl e +? disabilita il greedy matching, quelle python lo sono per la cronaca) e poi ti prendi $2 o $3, a seconda di quale dei due sia non null. |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
seitan666
![seitan666](https://2img.net/u/4111/22/39/77/avatars/6-91.jpg)
Age :
Join date : 2008-11-26
Posts : 203
Location :
|
Subject: Re: Request response Mon Dec 07, 2009 9:28 pm |
|
|
ah.. per alcuni siti non basta fare la richiesta dell'immagine, ma devi anche avere cookies e/o http-referer per cui anche in questo caso è fattibile ma si complica un po'.. oltre allo user-agent.. che se riesci ti conviene modificare in un browser conosciuto.. tipo così: "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)" o così "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)".. ma sono solo esempi.. Concordo col mio predecessore sia sull'uso delle regex che sull'evitare (se puoi) di analizzare il JS... |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
Okram_87
Age :
Join date : 2008-11-27
Posts : 101
Location :
|
Subject: Re: Request response Mon Dec 07, 2009 10:56 pm |
|
|
si si è possibilissimo evitare il JS...infatti mi basta analizzare un semplice html... infatti il problema credo sia proprio riferito allo user-agent...il crawler viene visto come robot e quindi salva solo una pagina di errore che dice che il browser utilizzato non è stato riconosciuto...
- Code:
-
<meta name="robots" content="noodp,noydir" /> <meta name="description" content=" F******k is a social utility that connects people with friends and others who work, study and live around them. People use F******K to keep up with friends, upload an unlimited number of photos, post links and videos, and learn more about the people they meet." /> <title>Incompatible Browser | F******k</title>
e dopo prosegue con il body della pagina d'errore invece di quella che il crawler richiede |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
seitan666
![seitan666](https://2img.net/u/4111/22/39/77/avatars/6-91.jpg)
Age :
Join date : 2008-11-26
Posts : 203
Location :
|
Subject: Re: Request response Tue Dec 08, 2009 5:40 pm |
|
|
eccoti uno snippet scritto al momento: - Code:
-
import urllib2,re,cookielib
url = "http://www.explosm.net/comics/1881/" proxy = None #proxy = {'http': 'http://proxy.example.com:8080/'} def getAllImages(url,proxy): if not url.lower().startswith("http://"): url = "http://%s" % url req1 = urllib2.Request(url) req1.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)") cj = cookielib.LWPCookieJar() if proxy: opener = urllib2.build_opener(urllib2.ProxyHandler(proxy),urllib2.HTTPCookieProcessor(cj)) else: opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) try: html=opener.open(req1).read() except: return None #Timeout o altri errori imgs = re.findall(r"<img[^>]*?src=([\"']([^\"']+)[\"']|([^\s]+))",html,re.DOTALL | re.IGNORECASE) i = 0 for img in imgs: img = img[1] if img[1] else img[2] if img.startswith("/"): url = "http://%s%s" % (req1.get_host(),img) elif img.lower().startswith("http://"): url = img elif img.lower().startswith(req1.get_host().lower()+"/"): url = "http://%s" % img else: url = req1.get_full_url() if url.rindex('/') != 5: url = url[:url.rindex('/')+1] url = "%s%s" % (url,img) req = urllib2.Request(url) req.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)") req.add_header("Referer",req1.get_full_url()) try: open("immagine%d" % i,"w").write(opener.open(req).read()) print "Download di '%s' => '%s'" % (img,url) i += 1 except: print "Fallito download di '%s' => '%s'" % (img,url)
getAllImages(url,proxy) |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
Okram_87
Age :
Join date : 2008-11-27
Posts : 101
Location :
|
Subject: Re: Request response Tue Dec 08, 2009 10:36 pm |
|
|
ma grazie! non dovevi scomodarti così tanto!! |
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
Sponsored content
|
Subject: Re: Request response ![Request response I_icon_minitime](https://2img.net/s/t/12/98/13/i_icon_minitime.gif) |
|
|
|
|
![Go down](https://2img.net/s/t/12/98/13/i_down_arrow.gif) |
|
|
Page 1 of 1 |
|
|
Permissions in this forum: |
You cannot reply to topics in this forum
|
|
|
|
|
|
|