利用PyQuery获取HTML指定标签内容
安装
sudo pip install pyquery
例子
from pyquery import PyQuery
import urllib2
page = urllib2.urlopen("http://www.lzu.edu.cn")
text = unicode(page.read(), "utf-8")
doc = PyQuery(text)
for event in doc(‘.r li‘):
event = PyQuery(event)
#loc = event.find(‘.h‘).text()
time = event.text().encode(‘utf-8‘)
#name = event.find(‘title‘).text()
#print ‘name: %s‘ % name
print ‘名字 : %s‘ % time
#print ‘location : %s‘ % loc
print ‘----------------------‘
注意event里是unicode,在内存中运算的一定是固定2字节的unicode,存储要转为变字节的utf-8。
当然还有别的模块也可以用,如
#!/usr/bin/env python
#-*- coding: utf8 -*-
from HTMLParser import HTMLParser
from htmlentitydefs import name2codepoint
import urllib2
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self._flag = ‘‘
def handle_starttag(self, tag, attrs):
if tag == ‘h3‘ and attrs.__contains__((‘class‘,‘event-title‘)):
self._flag = ‘event-title‘
if tag == ‘time‘:
self._flag = ‘time‘
if tag == ‘span‘ and attrs.__contains__((‘class‘,‘event-location‘)):
self._flag = ‘event-location‘
def handle_data(self, data):
if self._flag == ‘event-title‘:
print ‘会议名称: %s‘ %data
self._flag = ‘‘
#if self._flag == ‘time‘:
# print ‘会议时间: %s‘ %data
if self._flag == ‘event-location‘:
print ‘会议地点: %s‘ %data
print ‘-------------------‘
self._flag = ‘‘
page = urllib2.urlopen(‘https://www.python.org/events/python-events/‘).read()
parser = MyHTMLParser()
parser.feed(page)
References
[1].http://www.douban.com/note/208670234/
[2].http://blog.csdn.net/mindmb/article/details/7898528
[3].http://pythonhosted.org/pyquery/api.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。