Я хотел бы получить ниже элементов из тега «статьи»:питон не смог разобрать HTML, повторно
- ссылки
- широта и долгота
- количество фотографий каждого дома
Но это не сработает.
Вот код Python:
import urllib
import urllib2
import re
import socket
def getPage(infoUrl):
url = infoUrl
try:
request = urllib2.Request(url)
request.add_header("User-Agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0")
response = urllib2.urlopen(request)
except urllib2.URLError, e:
print "Bad Url or timeout"
print type(e)
print e
return ''
except socket.timeout,e:
print "socket timeout"
print type(e)
print e
return ''
else:
return response.read().decode('utf8')
print "Done"
pattern = re.compile(r'<article.*?latitude="(.*?)".*?longtitude="(.*?)"><a href="(.*?)".*?<figcaption.*?>(.*?)</figcaption>.*?</a>',re.S)
infoUrl = 'http://www.zillow.com/homes/MA-02139_rb/'
page = getPage(infoUrl)
items = re.findall(pattern,page)
print items
for item in items:
print item
Кстати, это Python скрипт работает довольно медленно.
Любое предложение по его оптимизации?
Вы ошибочно написали «долготу»; если это так, как в вашем фактическом коде, я бы сказал, что это ваша проблема. Регулярное выражение так свободно (со всеми этими '. *?'), Которое требуется навсегда, чтобы потерпеть неудачу. –