Форум сайта python.su
Всем привет,
Как по тегу “tag_name”:
<tag_name> some data </tag_name>
import httplib2
h = httplib2.Http(".cache")
response, content = h.request('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
html_file = content.decode("utf-8")
print(html_file)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final"//EN>
<html>
<body>
<TITLE>What time is it?</TITLE>
<H2> US Naval Observatory Master Clock Time</H2> <H3><PRE>
<BR>Aug. 30, 15:48:31 UTC Universal Time
<BR>Aug. 30, 11:48:31 AM EDT Eastern Time
<BR>Aug. 30, 10:48:31 AM CDT Central Time
<BR>Aug. 30, 09:48:31 AM MDT Mountain Time
<BR>Aug. 30, 08:48:31 AM PDT Pacific Time
<BR>Aug. 30, 07:48:31 AM AKDT Alaska Time
<BR>Aug. 30, 05:48:31 AM HAST Hawaii-Aleutian Time
</PRE></H3><P><A HREF="http://www.usno.navy.mil"> US Naval Observatory</A>
</body></html>
Офлайн
а что регулярные выражения отменили смотри_тут
Офлайн
не понимаю как с помощью регулярных выражений найти то, что мне нужно
я понимаю, как найти шаблон какой то, но при поиске, например:
result = re.search('TITLE', html_file);
print(result.group(0))
я получаю ‘TITLE’
вы не могли бы пример показать? Эта же ветка форума для новичков:)
Офлайн
result = re.search(r'(<TITLE>)(?P<nazvanie>.*?)(</TITLE>)', html_file);
print(result.group('nazvanie'))
Офлайн
savswsoftІснує такий html парсер як Beautiful Soup.
Если не сложно, приведите плиииз пример для “<TITLE>”
import BeautifulSoup
doc = """<html>
<body>
<TITLE>What time is it?</TITLE>
<H2> US Naval Observatory Master Clock Time</H2> <H3><PRE>
<BR>Aug. 30, 15:48:31 UTC Universal Time
<BR>Aug. 30, 11:48:31 AM EDT Eastern Time
<BR>Aug. 30, 10:48:31 AM CDT Central Time
<BR>Aug. 30, 09:48:31 AM MDT Mountain Time
<BR>Aug. 30, 08:48:31 AM PDT Pacific Time
<BR>Aug. 30, 07:48:31 AM AKDT Alaska Time
<BR>Aug. 30, 05:48:31 AM HAST Hawaii-Aleutian Time
</PRE></H3><P><A HREF="http://www.usno.navy.mil"> US Naval Observatory</A>
</body></html>"""
soup = BeautifulSoup.BeautifulSoup(doc)
print soup.find('title')
<title>What time is it?</title>Якщо хочеться виділити текст що між тегами
print soup.find('title').string
print(soup.find('title').string)
Отредактировано (Авг. 31, 2009 09:37:13)
Офлайн
прикольно так читать украинский коммент, из него ничего не понял, но за код спасиб:))
Офлайн
savswsoft
рекомендую пощупать lxml (самый быстрый, биндинги к сишной библе) и вышеназванный BeautifulSoup. Да и в самом питоне кое-что есть - sax, например.
Офлайн
Если делать это на регулярках, то можно так:
import re
import urllib
def get_tag_data(tag, page):
tags_data = re.findall(r"\<{tag}\>(.*?)\<\/{tag}\>".format(tag=tag), page)
return tags_data
#Использовать так:
page = urllib.urlopen("http://www.google.com").read()
print (get_tag_data("TITLE", page))
Отредактировано (Сен. 2, 2009 16:39:51)
Офлайн