Python学习笔记——20170829

来源:互联网 发布:网络连接受限制有叹号 编辑:程序博客网 时间:2024/06/14 04:19

HTMLParser

  • 方法注解
from html.parser import HTMLParser#class MyParser(HTMLParser):    """    HTMLParser    """    def __init__(self):        HTMLParser.__init__(self)    def handle_startendtag(self, tag, attrs):        super().handle_startendtag(tag, attrs)    # 处理开始标签<a>    def handle_starttag(self, tag, attrs):        pass    # 处理结束标签</a>    def handle_endtag(self, tag):        pass    # 处理特殊字符串,例如$#开头的    def handle_charref(self, name):        pass    # 处理标签中的内容,比如<a href="http://www.baidu.com">baidu<a>    def handle_data(self, data):        pass    # 处理注释    def handle_comment(self, data):        pass    # 处理以<!开头的,比如<!DOCTYPE HTML>    def handle_decl(self, decl):        pass    # 处理特殊字符,例如&nbsp    def handle_entityref(self, name):        pass    # 处理<?instruction>    def handle_pi(self, data):        pass

Douban电影内容爬取

import requestsfrom html.parser import HTMLParser#class MovieParser(HTMLParser):    """    电影解析器    """    def __init__(self):        HTMLParser.__init__(self)        self.moives = []    def handle_starttag(self, tag, attrs):        def _attr(attrList, attrName):            for attr in attrList:                if attr[0] == attrName:                    return attr[1]            return None        if tag == 'li' and _attr(attrs, 'data-title'):            movie = {}            movie['title'] = _attr(attrs, 'data-title')            movie['score'] = _attr(attrs, 'data-score')            if movie['score'] is None:                movie['score'] = "None"            movie['director'] = _attr(attrs, 'data-director')            movie['actors'] = _attr(attrs, 'data-actors')            self.moives.append(movie)            # print('{movie[title]} | {movie[score]} | {movie[director]} | {movie[actors]}'.format(movie=movie))    def error(self, message):            pass##def my_movies(url):    """    网络请求    :param url: 地址    :return: 解析好的内容    """    mp = None    try:        headers = {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)'}        response = requests.get(url, headers=headers)        response.raise_for_status()        mp = MovieParser()        mp.feed(response.text)        return mp.moives    except:        return print('发生异常')    finally:        if mp is not None:            mp.close()##def save_file(path, text):    """    文本存储    :param path: 存储路径    :param text: 文本内容    :return: None    """    with open(path, 'w', encoding='UTF-8') as file:        file.write(text)##if __name__ == '__main__':    url = "https://movie.douban.com/cinema/nowplaying/chongqing/"    text = my_movies(url)    save_file("d:/upload/movies.json", str(text).replace('\'', '\"'))
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高铁买票票丢了怎么办 异地恋房费太贵怎么办 高铁票车上丢了怎么办 取了高铁票丢了怎么办 高铁买了学生票没带学生证怎么办 买的学生票超过区间怎么办 买了超过区间的学生票怎么办 火车票大于学生票购买区间怎么办 买了学生票学生证丢了怎么办 取票学生证没带怎么办 学生卡的失磁怎么办 学生证没有充磁买不了学生票怎么办 买学生票不在优惠区间怎么办 火车票学生优惠次数用完怎么办 学生乘火车优惠磁卡丢了怎么办 磁卡锁的卡丢了怎么办 电梯磁卡扣丢了怎么办 买火车票手机号填错了怎么办 买火车票乘客身份核验失败怎么办 火车票不在一个车厢怎么办站票 坐火车丢东西了怎么办 g2坐过站了怎么办 坐火车买近了怎么办 打印的纸质火车票丢失怎么办 格力空调没保修单怎么办 格力空调不兑现保修怎么办 哈空调如果退市怎么办 空调保修单丢了怎么办 海尔空调发票丢了怎么办 格力空调发票丢了怎么办 联程航班第一程延误怎么办 飞机经停10小时怎么办 去车站买票没带身份证怎么办 转机航班第一班延误了怎么办 转机航班第一班取消了怎么办 香港转机大陆行李托运怎么办 联程车票第一班车晚点怎么办 到了普吉机场接机怎么办 被骚扰电话打个不停怎么办 网贷不停发信息怎么办 网贷天天发信息怎么办