python模块使用案例

python模块使用案例

一、使用MySQLdb模块代码示例:

# 导入 MySQLdb模块
import MySQLdb
# 和服务器建立链接,host是服务器ip,我的MySQL数据库搭建在本机,默认的是127.0.0.1,
# 用户、密码、数据库名称对应着照输就行了,默认的端口号是3306,charset是编码方式,
# 默认的是utf8(也有可能是gbk,看安装的版本)。. 1point3acres.com/bbs
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='yourPassword', db='dbname', port=3306, charset='utf8')
# 建立cursor
cur = conn.cursor()
# 通过对象cur的execute()方法执行SQL语句
cur.execute("select * from citeRelation where paperName = 'On Random Graph'")
# fetchall()方法获得查询结果,返回的是一个list,可以直接这样查询:list[i][j],
# i表示查询结果中的第i+1条record,j表示这条记录的第j+1个attribute(别忘了python从0开始计数)# 也可以进行delete,drop,insert,update等操作,比如:
sql = "update studentCourseRecord set fail = 1 where studentID = '%s' and semesterID = '%s' and courseID = '%s'" %(studentID,course[0],course[1])
cur.execute(sql)
# 与查询不同的是,执行完delete,insert,update这些语句后必须执行下面的命令才能成功更新数据库
conn.commit()
# 一如既往的,用完了之后记得关闭cursor,然后关闭链接
cur.close(). more info on 1point3acres.com
conn.close()

 

二、使用cookie登陆抓取指定页面,可以像下面这样,这是一个最简洁的代码

#!/usr/bin/python  
# coding:utf-8   
import httplib2  
import urllib2  
import re #正则表达式模块  
  
class PageClass:  
  
    #获取指定url的网页内容  
    def get_page(self,url,headers):  
        http=httplib2.Http()  
        response,content=http.request(url,'GET',headers=headers)  
        #return content.decode('unicode-escape').encode('utf-8')  
        return content.decode('unicode-escape').encode('utf-8')  
          
def main():              
    headers={"cookie":'your cookie'}  
    url = 'http://fengchao.baidu.com'  
    #print headers  
    page = PageClass()  
    content = page.get_page(url,headers)  
    print content  
  
if __name__ == "__main__":  
    main()  

只需要输入url和headers就可以抓取到指定的页面。这里需要输入你自己的cookie。上面的代码执行后的结果如下,可以看到我们抓取到了内容:

三、下面给出一个示例,其功能为提取百度首页搜索框上面的导航条的内容:

 

#该程序是对百度的首页进行分析,并提取出其搜索框上面的导航条  
import httplib2  
import urllib2  
import re  
from lxml import etree  
  
def main():  
    http = httplib2.Http()  
    response,content = http.request("http://www.baidu.com",'GET')  
    print "response:",response  
    print "content:",content  
  
    tree = etree.HTML(content)  
  
    #上面的注释为要查找的部分html  
    #<p id=nv><a href=http://news.baidu.com>新闻</a><b>网页</b>  
    #<a href=http://tieba.baidu.com>贴吧</a><a href=http://zhidao.baidu.com>知道</a>  
    #<a href=http://mp3.baidu.com>MP3</a><a href=http://image.baidu.com>图片</a>  
    #<a href=http://video.baidu.com>视频</a><a href=http://map.baidu.com>地图</a></p>  
  
    #下面开始查找id为nv的p标签下的所有<a>的href值  
    hyperlinks = tree.xpath(u'//p[@id="nv"]/a/@href')  
    print "hyperlinks:",hyperlinks  
    for hyperlink in hyperlinks:  
        print "hyperlink:",hyperlink  
          
    #查找id为nv的p标签下的所有<a>节点  
    a_nodes = tree.xpath(u'//p[@id="nv"]/a')  
    print "a_nodes_length:",len(a_nodes)  
    for a_node in a_nodes:  
        print "<a>:",a_node.text,a_node.attrib['href']  
    print "\n"  
  
    #通过正则表达式查找<p id="nv">的标签内容,匹配的内容为正则表达式中的"()"内的内容     
    name_flag='<p id="nv">(.+?)</p>'  
    name_re=re.compile(name_flag,re.S)  
    name_regx=name_re.search(content)  
    print name_regx  
    name=name_regx.group(1)  
    print "name:",name  
          
if __name__ == "__main__":  
    main()  

 

四、HTMLParser

该模块是用来解析HTML元素的。可以从HTML中筛选出指定的标签。下面给出一个例子,读取百度首页www.baidu.com中的所有链接,并打印出来。

import HTMLParser  
import urllib  
import sys  
  
#定义HTML解析器  
class parseLinks(HTMLParser.HTMLParser):  
    #该方法用来处理开始标签的,eg:<div id="main">  
    def handle_starttag(self, tag, attrs):  
        if tag == 'a':  #如果为<a>标签  
            #name为标签的属性名,如href、name、id、onClick等等  
            for name,value in attrs:      
                if name == 'href': #这时选择href属性  
                    print "name_value: ",value  #href属性的值  
                    print "first tag:",self.get_starttag_text() #<a>标签的开始tag  
                    print "\n"  
  
if __name__ == "__main__":  
    #创建HTML解析器的实例  
    lParser = parseLinks()  
    #打开HTML文件  
    lParser.feed(urllib.urlopen("http://www.baidu.com").read())  
    lParser.close()  

但调用feed函数时,会自动调用handle_starttag函数,这里的handle_starttag函数是对原函数的重写。handle_starttag(self,tag,attrs)中的参数tag是标签的名字;参数attrs是一个(name,value)键值对,是通过查找到tag的<>括号来确定的,其中name是tag的<>中的属性名,value是去除引号后的值。

 

转载于:https://www.cnblogs.com/liuyansheng/p/6141422.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值