1. загрузить html страницу
2. найти все вхождения маски в html:
- Код: Выделить всё • Развернуть
<li duration="*" id="*" singer="*" link="*">
* - строка символов
что можно почитать?
roboforum.ruТехнический форум по робототехнике. |
|
|
<li duration="*" id="*" singer="*" link="*">
* - строка символов
надо бы отдельный раздел сделать по программированию на ПК
import urllib
h = urllib.urlopen('http://google.com/') # нужно указывать протокол
print h.read() # печать html документа
import urllib
find_string = '123 321 !@#'
query = urllib.quote_plus(find_string)
h = urllib.urlopen('http://google.com/search?q=' + query) # поиск в гугле
print h.read() # вывод результата запроса
from HTMLParser import HTMLParser
class myparser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.count = 0
def handle_starttag(self, tag, attrs):
if tag == 'li' and 'duration' in attrs[0][0] and 'id' in attrs[1][0] and 'singer' in attrs[2][0] and 'link' in attrs[3][0]:
print 'singer: ', attrs[2][1], ', link: ', attrs[3][1], ', id: ', attrs[1][1]
self.count += 1
data = """ сюда загнать html"""
pars = myparser()
pars.feed(data)
print pars.count
Traceback (most recent call last):
File "/home/mibbim/parser.py", line 76, in <module>
pars.feed(text)
File "/usr/lib/python2.6/HTMLParser.py", line 108, in feed
self.goahead(0)
File "/usr/lib/python2.6/HTMLParser.py", line 148, in goahead
k = self.parse_starttag(i)
File "/usr/lib/python2.6/HTMLParser.py", line 249, in parse_starttag
attrvalue = self.unescape(attrvalue)
File "/usr/lib/python2.6/HTMLParser.py", line 387, in unescape
return re.sub(r"&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));", replaceEntities, s)
File "/usr/lib/python2.6/re.py", line 151, in sub
return _compile(pattern, 0).sub(repl, string, count)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
MiBBiM писал(а):
- Код: Выделить всё • Развернуть
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
import re
LI_TAG = re.compile(r'(\<li\ duration="(?P<duration>.*?)"\ id="(?P<id>.*?)"\ singer="(?P<singer>.*?)"\ link="(?P<link>.*?)"\>)', re.UNICODE)
>>> import re
>>> LI_TAG = re.compile(r'(\<li\ duration="(?P<duration>.*?)"\ id="(?P<id>.*?)"\ singer="(?P<singer>.*?)"\ link="(?P<link>.*?)"\>)', re.UNICODE)
>>> m= LI_TAG.match('<li duration="abc" id="i213" singer="artist" link="some-link">')
>>> m.groupdict()
{'duration': 'abc', 'singer': 'artist', 'link': 'some-link', 'id': 'i213'}
>>>
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4