我刚开始使用python的BeautifulSoup包进行抓取。在我的代码中,我得到以下汤对象
>>> soupObj
[u'$(function(){SEAT.PG.initDialog(".generate-popup-3030",[{msez:"3030",c:"#333",o:0.5,f:false,html:SEAT.PG.getImgPopHtml}]);SEAT.PG.mappaInterattiva({longitude:13.37489,latitude:42.36009,sito:"pgol",zoomLevel:"1",lng:1,mirino:"http://img.pgol.it/pgol/img/mk_pallino.png",allowFoto:true,mapType:null,streetView:false,dr:false,addMobile:false,ums:"sorellenurzia"});var a=SEAT.commenti({__2011_commento_click_stella:"Clicca su una stella per dare il tuo voto",__2011_commento_da_evitare:"Da evitare",__2011_commento_di_meglio:"C\'\xe8 di meglio",__2011_commento_non_male:"Non male",__2011_commento_mi_piace:"Mi piace",__2011_commento_consigliato:"Consigliato",__2011_commento_scrivi:"Scrivi una recensione per condividere la tua esperienza con gli altri utenti",__2011_commento_breve:"Scrivi almeno 120 caratteri per dare informazioni utili e complete a chi legger\xe0 la recensione.",__2011_commento_manca_voto:"Ti sei dimenticato di dare un voto",__2011_commento_servizio_non_disponibile:"Il servizio al momento non \xe8 disponibile",__2011_commento_segnala:"Segnala la recensione",__2011_commento_segnala_msg1:"Ritieni che questa recensione sia offensiva o inappropriata a PagineGialle.it?",__2011_commento_segnala_msg2:"La nostra redazione si occuper\xe0 di controllarne il contenuto e, se necessario, di rimuoverlo dal sito",__2011_conferma:"conferma",__2011_annulla:"annulla",__2011_ha_scritto_il:"ha scritto il",__2011_pubblica:"pubblica",__2011_commento_modifica_recensione:"Modifica recensione",__2011_conferma_notifica:"Aggiornamento via email attivo",__2012_commenti_relatedopec:"Conosci anche queste attivit\xe0?",__2011_elimina_notifica:"Aggiornamento via email non attivo"});a.enableAbuse();a.enableRating()});']
我想从这个对象中提取lat / long部分,即“longitude:13.37489,latitude:42.36009
”。我不知道该怎么做
答案 0 :(得分:3)
以下是使用正则表达式提取coords的示例python代码:
import re
soupObj = [u'$(function(){SEAT.PG.initDialog(".generate-popup-3030",[{msez:"3030",c:"#333",o:0.5,f:false,html:SEAT.PG.getImgPopHtml}]);SEAT.PG.mappaInterattiva({longitude:13.37489,latitude:42.36009,sito:"pgol",zoomLevel:"1",lng:1,mirino:"http://img.pgol.it/pgol/img/mk_pallino.png",allowFoto:true,mapType:null,streetView:false,dr:false,addMobile:false,ums:"sorellenurzia"});var a=SEAT.commenti({__2011_commento_click_stella:"Clicca su una stella per dare il tuo voto",__2011_commento_da_evitare:"Da evitare",__2011_commento_di_meglio:"C\'\xe8 di meglio",__2011_commento_non_male:"Non male",__2011_commento_mi_piace:"Mi piace",__2011_commento_consigliato:"Consigliato",__2011_commento_scrivi:"Scrivi una recensione per condividere la tua esperienza con gli altri utenti",__2011_commento_breve:"Scrivi almeno 120 caratteri per dare informazioni utili e complete a chi legger\xe0 la recensione.",__2011_commento_manca_voto:"Ti sei dimenticato di dare un voto",__2011_commento_servizio_non_disponibile:"Il servizio al momento non \xe8 disponibile",__2011_commento_segnala:"Segnala la recensione",__2011_commento_segnala_msg1:"Ritieni che questa recensione sia offensiva o inappropriata a PagineGialle.it?",__2011_commento_segnala_msg2:"La nostra redazione si occuper\xe0 di controllarne il contenuto e, se necessario, di rimuoverlo dal sito",__2011_conferma:"conferma",__2011_annulla:"annulla",__2011_ha_scritto_il:"ha scritto il",__2011_pubblica:"pubblica",__2011_commento_modifica_recensione:"Modifica recensione",__2011_conferma_notifica:"Aggiornamento via email attivo",__2012_commenti_relatedopec:"Conosci anche queste attivit\xe0?",__2011_elimina_notifica:"Aggiornamento via email non attivo"});a.enableAbuse();a.enableRating()});']
m = re.search('longitude:([-+]?\d+.\d+),latitude:([-+]?\d+.\d)', soupObj[0])
if m:
longitude = m.group(1)
latitude = m.group(2)
print "longitude=%s, latitude=%s" % (longitude, latitude)
else:
print "Failed to match longitude, latitude."
运行此代码会产生:
longitude=13.37489, latitude=42.3