周末没事研究了以下python中的HTMLParser库,学习了以下,写了个类似网络爬虫的代码,8684.cn中抓去北京公交线路的代码,代码只是实现了抓起的功能,并没有对数据做什么分析,也算是尝试着实现以下从网站获取信息的功能。python还是很强大的啊。直接上代码,如果想抓去其他城市的公交的话只需要把其中的INITIAL_URL 和BASE_URL进行修改就行,前提是8684.cn网站没有把自己的web格式个换了,程序员之间代码最容易沟通,下面直接上代码
#!/bin/python3
from html.parser import HTMLParser
import urllib.request
import time
from collections import deque
class BusLineInfoParser(HTMLParser):
"""
this just be a parser of 8684.cn
whichi has bus line information
"""
def __init__(self):
HTMLParser.__init__(self)
self.ready = False
self.tags = []
self.busline = []
def parse_attr(self, attrs):
dict_attrs = {}
for (k, v) in attrs:
dict_attrs[k] = v
return dict_attrs;
def handle_starttag(self, tag, attrs):
dict_attrs = self.parse_attr(attrs)
if tag == 'ul' and 'id' in dict_attrs and dict_attrs['id'] == 'z_lines' and 'class' in dict_attrs and dict_attrs['class'] == 'wf_clear':
self.tags.append((tag, 'wf_clear'))
self.ready = True
return
if not self.ready:
return
if tag == 'a' and 'class' in dict_attrs:
self.tags.append((tag, dict_attrs['href']))
return