HTMLParser解析网页,提取链接地址、标题名称,并插入数据库 分类: python 小练习 HTMLParser 2014-02-19 09:57 519人阅读 评论(0) 收藏
2014-02-19 09:57
906 查看
前提:
在mysql中,创建stu数据库
在mysql中,创建stu数据库
#coding:utf-8 import MySQLdb import urllib2 import re import time import sys from HTMLParser import HTMLParser as hp ''' 1.获取 网易财经 页面内容 2.解析网页中链接、标题,放入一个列表中 3.如果已存在my163表,则先删除该表,否则再创建表my163,包括编号、链接地址、标题内容、插入数据库时间,将链接、标题插入数据库 ''' #数据操作,将数据插入数据库 class dealdata: def __init__(self): self.db = MySQLdb.connect("localhost",'root',"root") self.db.select_db('stu') self.cur = self.db.cursor() #初始化表 def createtable(self): try: deltable="drop table if exists my163;" tablesql="create table my163 (id int not null auto_increment primary key,link varchar(255) not null,content Text,time datetime);" self.cur.execute(deltable) self.db.commit() self.cur.execute(tablesql) self.db.commit() #判断表是否创建成功 self.cur.execute("SHOW TABLES LIKE '%my163%'") except Exception,e: sys.exit(u"创建表失败") else: sys.stdout.write(u"创建表my163成功") #将数据插入表中 def insert_data(self,record): insertsql = "insert into my163 (link,content,time) values (%s,%s,%s);" for link,content in record: self.cur.execute(insertsql,(link,content,time.strftime('%Y-%m-%d %H:%M:%S'))) def commitdata(self): self.db.commit() #查询前10条记录 def fetchdata(self): self.cur.execute("""select * from my163""") self.cur.scroll(0,mode='absolute') #获取前10条记录 records=self.cur.fetchmany(10) print "get 10 record" for idnum,href,content,t in records: print href,content#.decode("utf-8") print "get 10 records " #关闭链接 def closeconnection(self): self.cur.close() self.db.close() #获取网易财经页面内容 def getpage(): req= urllib2.Request("http://money.163.com") opener = urllib2.build_opener() f = opener.open(req) return f.read() #使用HTMLParser类解析html网页内容 class htmlparser(hp): def __init__(self): hp.__init__(self) #标记href字段 self.href = None #标记href的链接地址 self.content=None #存放链接地址、及显示数据,如 (http://money.163.com/blog/ 博客) self.parseresult=[] def handle_starttag(self,tag,attrs): #处理 标签a if tag=='a': for link,content in attrs: if link=="href" and content.startswith("http"): self.href='a' self.content=content def handle_data(self,data): if self.href=='a' and len(data.strip()): print self.content,data self.parseresult.append((self.content,data)) # 标签a 结束后就设置标记self.href=None def handle_endtag(self,tag): if tag=='a': self.href=None if __name__ == '__main__': #获取页面源代码,并解析 pagesource = getpage() html = htmlparser() html.feed(pagesource) html.close() #将出结果插入数据库 mydb=dealdata() mydb.createtable() mydb.insert_data(html.parseresult) mydb.commitdata() mydb.fetchdata() mydb.closeconnection() ''' 部分输出结果: http://money.163.com/photoview/50ST0025/12924.html 河南房企狂撒10万现金营销 http://money.163.com/photoview/50ST0025/12919.html 老农自造“兰博基尼”送孙子 http://money.163.com/photoview/50ST0025/12916.html 冬奥冠军父母烤串修鞋谋生 http://money.163.com/special/00253JGA/MoreJigou.html 基金研究 http://money.163.com/special/00253JGA/MoreJigou.html 阅读全部 http://money.163.com/14/0217/09/9L9BH7FD00253JGA.html 华宝证券:债市需求旺盛 分 http://money.163.com/14/0218/14/9LCF742200253JGA.html 凯石投资2月新发基金报告: http://money.163.com/14/0217/16/9LA3GPMK00253JGA.html 好买:大盘蓝筹反弹有机会 http://money.163.com/14/0214/09/9L1KAJPN00253JGA.html 好买:余额宝理财通零钱宝百 '''
相关文章推荐
- HTMLParser解析网页,提取链接地址、标题名称,并插入数据库
- 提取网易的链接及链接名称 分类: python 小练习 正则表达式 2013-11-07 14:02 382人阅读 评论(0) 收藏
- #小练习 SGMLParser 解析 HTML 分类: HTMLParser 2013-11-12 15:52 472人阅读 评论(0) 收藏
- #小练习 解析HTML文件并使用字典保存链接 分类: HTMLParser python 小练习 2013-11-11 12:06 267人阅读 评论(0) 收藏
- Python之HTML的解析(网页抓取一) 分类: HTMLParser 2013-11-08 20:32 5203人阅读 评论(0) 收藏
- #小练习 使用SGMLParser获取url链接 分类: HTMLParser 2013-11-12 16:52 471人阅读 评论(0) 收藏
- SGMLParser (二) 分类: python 小练习 HTMLParser 2014-02-20 14:06 362人阅读 评论(0) 收藏
- #小练习 使用字典保存HTMLParser解析的数据 分类: python 小练习 HTMLParser 2013-11-08 20:51 574人阅读 评论(0) 收藏
- python:解析html(HTMLParser、SGMLParser) 分类: HTMLParser 2013-11-12 18:11 2302人阅读 评论(0) 收藏
- 【搜索引擎Jediael开发笔记3】使用HtmlParser提取网页中的链接 分类: H3_NUTCH 2014-05-20 20:50 1211人阅读 评论(0) 收藏
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies .
- 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)
- #小练习 正则表达式匹配邮箱名称 分类: python 小练习 正则表达式 2013-05-23 16:15 383人阅读 评论(0) 收藏
- #小练习 从多个文件中提取电话号码 分类: python 小练习 正则表达式 2013-05-28 15:40 442人阅读 评论(0) 收藏
- 黄聪:使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)
- Java解析HTML之HTMLParser使用与详解 分类: C_OHTERS 2014-05-19 21:46 2309人阅读 评论(0) 收藏
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)(转)
- python字符串中包含Unicode插入数据库乱码问题 分类: Python 2015-04-28 18:19 342人阅读 评论(0) 收藏
- #小练习 使用HTMLParser获取data时注意事项 分类: python 小练习 HTMLParser 2013-11-08 21:05 335人阅读 评论(0) 收藏