感觉写的好low哈哈哈 但是应该比较容易读懂吧
Topic source这个分割线好烦
会议名称:PyCon Ghana 2018
会议时间:10 Aug. – 12 Aug.
会议年份:2018
会议地点:Accra, Ghana
----------------------------------
会议名称:PyData Delhi 2018
会议时间:11 Aug. – 13 Aug.
会议年份:2018
会议地点:New Delhi, India
----------------------------------
会议名称:PyCon Korea 2018
会议时间:15 Aug. – 20 Aug.
会议年份:2018
会议地点:Seoul, South Korea
----------------------------------
会议名称:PyBay 2018
会议时间:16 Aug. – 20 Aug.
会议年份:2018
会议地点:San Francisco, CA, USA
----------------------------------
会议名称:PyCon PL 2018
会议时间:23 Aug. – 27 Aug.
会议年份:2018
会议地点:Ossa, Poland
----------------------------------
会议名称:Flask Conference
会议时间:24 Aug. – 26 Aug.
会议年份:2018
会议地点:São Paulo, Brazil
----------------------------------
会议名称:EuroPython 2018
会议时间:23 July – 30 July
会议年份:2018
会议地点:Edinburgh, UK
----------------------------------
会议名称:PyCon Russia
会议时间:22 July – 24 July
会议年份:2018
会议地点:Gribovka, Kaluga Oblast, Russia
----------------------------------
#reslut: "``` 会议名称:PyCon Ghana 2018 会议时间:10 Aug. – 12 Aug. 会议年份:2018
会议地点:Accra, Ghana
会议名称:PyData Delhi 2018 会议时间:11 Aug. – 13 Aug. 会议年份:2018
会议地点:New Delhi, India
会议名称:PyCon Korea 2018 会议时间:15 Aug. – 20 Aug. 会议年份:2018
会议地点:Seoul, South Korea
会议名称:PyBay 2018 会议时间:16 Aug. – 20 Aug. 会议年份:2018
会议地点:San Francisco, CA, USA
会议名称:PyCon PL 2018 会议时间:23 Aug. – 27 Aug. 会议年份:2018
会议地点:Ossa, Poland
会议名称:Flask Conference 会议时间:24 Aug. – 26 Aug. 会议年份:2018
会议地点:São Paulo, Brazil
会议名称:EuroPython 2018 会议时间:23 July – 30 July 会议年份:2018
会议地点:Edinburgh, UK
会议名称:PyCon Russia 会议时间:22 July – 24 July 会议年份:2018
会议地点:Gribovka, Kaluga Oblast, Russia
```"
Traceback (most recent call last): File "E:/Python/Project/PythonLearn/use_HTMLParser.py", line 69, in <module> parser.feed(data.decode('utf-8')) File "E:\Python\lib\html\parser.py", line 111, in feed self.goahead(0) File "E:\Python\lib\html\parser.py", line 163, in goahead self.handle_data(unescape(rawdata[i:j])) File "E:/Python/Project/PythonLearn/use_HTMLParser.py", line 26, in handle_data if self.parsedata == 'name': AttributeError: 'MyHTMLParser' object has no attribute '_MyHTMLParserparsedata'
这个报错是为什么呢?
巴西圣保罗这一行解析不了。。 会议地点:São Paulo, Brazil
UnicodeEncodeError: 'gbk' codec can't encode character '\xe3' in position 6: illegal multibyte sequence
大神,请问下:
def handle_starttag(self, tag, attrs): 中的if tag=='time': 改成 if attrs[0][0]=='datetime': 为什么不行呢?(报错IndexError: list index out of range)
有些时候没有上线了 回复一下7# 因为我做这个练习的时候并没有这个问题,你这个是编码问题 解决一下编码就行了 回复一下8# 报错信息已经说得很清楚 是超出了索引的范围 attrs好像是一个字典的形式 过去有些久了我也有些忘了,建议学习一下简单的html知识,再来做一章会简单很多,我当时没有学习html所以很吃力
好东西,顶一个。这个方法真的很贴合初始的HTMLParse的三个函数,可以让人了解到HTMLParser到底是怎样解析数据的,初学者切勿盲目追求少些程序,图快未必是好事,评论里还有的就是过于复杂,不方便理解,总的看来,还是这个好。
- 1
- 2
南柯一梦兯
from html.parser import HTMLParser from html.entities import name2codepoint from urllib import request import re
class MyHTMLParser(HTMLParser):
def init(self): super(MyHTMLParser,self).init() self.__parsedata='' #设置一个空状态
parser = MyHTMLParser()
URL = 'https://www.python.org/events/python-events/'
with request.urlopen(URL, timeout=15) as f: # 打开网页并取到数据 data = f.read() parser.feed(data.decode('utf-8'))