python插入数据库

# coding=utf-8
'''
Created on Oct 6, 2015
<li class="course-one">
            <a href="/view/510" target="_self">
                <div class="course-list-img">
                    <img width="240" height="135" alt="Android-节日短信送祝福(UI篇)" src="http://img.mukewang.com/5608968d0001c0e406000338-240-135.jpg">
                </div>
            <h5>
                <span>Android-节日短信送祝福(UI篇)</span>
            </h5>
            <div class="tips">
                <p class="text-ellipsis">本课程带领大家实现一个节日短信的群发的app。</p>
                <span class="l ">更新至3-1</span>
                <span class="l ml20">4128人学习</span>
            </div>
            <span class="time-label">2小时33分钟 | 中级 </span>
            <b class="follow-label">跟我学</b>
            </a>
</li>
@author: sys
'''
import urllib2,re
import MySQLdb


def getContent(html):
    reg=r'<li class="course-one">.+?<a href="(.+?)".+?<div class="course-list-img">.+?src="(.+?\.jpg)".+?</div>.+?<span>(.+?)</span>.+?class="tips".+?class="text-ellipsis">(.+?)</p>.+?class="time-label">(.+?)</span>'
    contentre=re.compile(reg,re.DOTALL)
    contentlist=contentre.findall(html)
    return contentlist


def display(contentlist):
    for content in contentlist:
        #values=dict(poster=content[0],title=content[1],rating=content[2],ticket_btn=content[3])
        print 'course','\t',content[0].strip()
        print 'img','\t',content[1].strip()
        print 'title','\t',content[2].strip()
        print 'description','\t',content[3].strip()
        print 'time','\t',content[4].strip()
        print'..............................................................................'
def saveToMySql(contentlist):
    try:
        conn=MySQLdb.connect(host='localhost',user='root',passwd='123',db='test',port=3306,charset='utf8')
        cur=conn.cursor()
        
        sql = "insert into test(course,img,title,description,time) values(%s,%s,%s,%s,%s)" 
        for content in contentlist:
            param = (content[0].strip(),content[1].strip(),content[2].strip(),content[3].strip(),content[4].strip()) 
            cur.execute(sql,param)
            conn.commit()
            print '插入成功!'
        cur.close()
        conn.close()
    except MySQLdb.Error,e:
        print "Mysql Error %d: %s" % (e.args[0], e.args[1])
        


def getHtml(url):
    headers = {
       'User-Agent': 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',
       'Accept-Language':  'zh-CN,zh;q=0.8',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    }
    req = urllib2.Request(url,'GET',headers = headers)
    page=urllib2.urlopen(req)
    html=page.read()
    page.close()
    return html


if __name__=="__main__":
    for i in range(1,22):
        print '======================第',i,'页========================='
        url="http://www.imooc.com/course/list?page=%s"%i
        html=getHtml(url)
        #print html
        contentlist=getContent(html)
        print len(contentlist)
        #print contentlist
        #display(contentlist)
        saveToMySql(contentlist)
        print "finished"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值