У меня проблема с чисткой кода, которая требуется для извлечения информации для создаваемого веб-мэшапа.
Обычно я пытаюсь удалить код из:
http://yellowpages.com.mt/Meranti-Ltd-In-Malta-Gozo;/Hair-Accessories;Hijjhkikke=Hiojhhfokje.aspx
Это только одна из страниц, которые мне нужно будет почистить, и поэтому я не могу напрямую передать программе нужный мне код = /.
Когда я очищаю страницу, используя следующий код (в Hpricot)
puts open(ypUrl, 'User-Agent'=>'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2') { |f| Hpricot(f) }
Я заметил, что вместо части кода, которая мне требуется, я вижу только ссылку на скрипт, а именно
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAA8JYIIyGmC1BLOU85GKKkPRSNQenRT-s-Gs-9sYb3ZSBhRRTdcRTMq3zWEID1E35uXl9bdQKIPQIjNQ"></script><title>
Beautimport Ltd (наращивание волос Balmain) на Мальте | Желтые страницы?? (Мальта) Лтд | YellowPages.com.mt
Это также то, что я вижу, когда делаю просмотр исходного кода в Firefox. Однако, когда я наведите курсор на элементы в Firebug, я смогу получить XPath, который, к сожалению, не работает из-за того, что ссылка на скрипт остается такой. (Я не уверен, правильно ли я объясняю). Мне бы действительно потребовался весь код, сгенерированный на странице из-за скрипта (который можно просмотреть только в Firebug). Мне нужно это, чтобы я мог извлечь следующее (взято из firebug, наведя на иконку Google на карте:
<a title="Click to see this area on Google Maps" href="http://maps.google.com/maps?ll=35.88805,14.46627&spn=0.006988,0.015922&z=16&key=ABQIAAAA8JYIIyGmC1BLOU85GKKkPRSNQenRT-s-Gs-9sYb3ZSBhRRTdcRTMq3zWEID1E35uXl9bdQKIPQIjNQ&sensor=false&mapclient=jsapi&oi=map_misc&ct=api_logo" target="_blank">
, который дает следующий Xpath (// обозначает tbody), но, как я уже говорил, поскольку он не дает весь код в Hpricot, он довольно бесполезен, так как не может добраться до него!
/html/body/form/table//tr/td/div/table[2]//tr[2]/td[2]/div/div[2]/table//tr/td/div/div[2]/a
Таким образом, я смогу извлечь Lng и Lat, которые мне действительно нужны для моего проекта. Я действительно не знаю, как сделать это по-другому, используя Hpricot, так как он не дает мне весь код, который мне требуется. Любая помощь будет чрезвычайно признательна.