python 网络爬虫 北京公交

利用Python的HTMLParser库,作者编写了一个简单的网络爬虫,从8684.cn抓取北京公交线路信息。代码实现抓取功能,但未对数据做分析。为抓取其他城市公交数据,只需修改INITIAL_URL和BASE_URL。考虑到避免对网站影响,爬虫设置每3秒取一次数据。
摘要由CSDN通过智能技术生成

周末没事研究了以下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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值