2012-03-27 3 views
0

Я использую lxml и python. Я хочу получить href по ссылке, которая читает Другие отзывы (40) на этом page. Я в основном отказываюсь от этого сайта и хочу получить отзывы.Fetching href ссылки

Поблагодарили бы за помощь. Thanx

ответ

2

Ссылка добавлена ​​с помощью клиентского javascript. Таким образом, вы не можете получить href, используя обычный синтаксический анализ HTML. Однако вы можете посмотреть на яваскрипт кода и получить ссылку оттуда:

>>> import re 
>>> import urllib2 
>>> import lxml.html 
>>> page = urllib2.urlopen("http://maps.google.com/maps/place?cid=2860002122405830765").read() 

# have to search the page source since the link is added in javascript 
>>> mo = re.search(r'<div class="pp-more-reviews">.*?</div>', page) 
>>> div = lxml.html.fromstring(mo.group(0)) 
>>> href = div.find("a").attrib["href"] 

Других вариантов:

  1. Использование selenium контролировать реальный браузер.
  2. Используйте phantomJS обезглавленное браузер
+0

Thanx for the great help !!! lxml - это требование: P –

+0

, если вы могли бы помочь мне с аналогичной проблемой на следующей странице. Я хотел бы получить строку * X из Y людей нашел этот отзыв полезным *. Это под каждым обзором. Thanx –

0

Я попытался сделать это следующим образом. Не очень изящно, но все же решает цель

response = urllib.urlopen('http://maps.google.com/maps/place?cid=7101561317478851901').read() 
dom = html.fromstring(response) 
href = dom.find_class('pp-more-reviews')[0].find_class('pp-more-content-link')[0].xpath('@href') 
Смежные вопросы