欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

利用PyQuery获取HTML指定标签内容_html/css_WEB-ITnose

程序员文章站 2022-04-06 18:50:01
...

安装

sudo pip install pyquery

例子

from pyquery import PyQueryimport urllib2page = 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 HTMLParserfrom htmlentitydefs import name2codepointimport urllib2class 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