Python爬虫学习笔记

参照七月的原生爬虫教程练习结果,有部分修改

代码

from urllib import request
import re
import operator

class Spider(object):
    url = 'https://www.panda.tv/cate/lol'
    root_pattern = '<div class="video-info">([\s\S]*?)</div>'
    name_pattern = '</i>([\s\S]*?)</span>'
    number_pattern = '<span class="video-number">([\s\S]*?)</span>'

    def __fetch_content(self):
        r = request.urlopen(Spider.url)
        htmls = r.read()
        htmls = str(htmls, encoding='utf-8')
        return htmls

    def __analysis(self, htmls):
        root_html = re.findall(Spider.root_pattern, htmls)
        anchors = []
        for html in root_html:
            name = re.findall(Spider.name_pattern, html)[0].strip()
            number = re.findall(Spider.number_pattern, html)
            if '万' in number[0]:
                number = number[0].rstrip('万')
                number = float(number) * 10000
            else:
                number = float(number[0])
            anchor = {'name': name, 'number': number}
            anchors.append(anchor)
        return anchors

    def __sort(self, anchors):
        anchors = sorted(anchors, key = operator.itemgetter('number'), reverse = True)
        return anchors
    
    def __show(self, anchors):
        for ranking, anchor in enumerate(anchors, start = 1) :
            print(f"第{ranking}位, {anchor['name']} --- {int(anchor['number'])} ")

    def go(self):
        htmls = self.__fetch_content()
        anchors = self.__analysis(htmls)
        anchors = self.__sort(anchors)
        self.__show(anchors)

spider = Spider()
spider.go()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,724评论 25 709
  • 爬虫简介 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规...
    单身狗的清香阅读 3,770评论 0 0
  • 视频教程: 慕课网 Python开发简单爬虫 1.简单爬虫架构 2.爬虫架构的运行流程 3.URL管理器 4.UR...
    拿破仑蛋糕阅读 2,286评论 2 0
  • 想在一觉里 抽身进入梦里的世界 在那里面打开窗户 跻身 跳跃 俯身 看着床上的“人” 你好! 再见!
    曦梓晴阅读 799评论 0 0
  • 同学选修成功挂掉,在班群抱怨说老师平时还总点名,分给的少,选修而已,居然还挂了他,十分气愤,奉劝我们别选他的课。看...
    oO0啦啦阅读 1,072评论 0 0