美文网首页菜鸟Python 爬虫专栏程序员
专栏:013:我要你知道实时票房.

专栏:013:我要你知道实时票房.

作者: 谢小路 | 来源:发表于2016-05-10 21:51 被阅读395次

    用理工科思维看待这个世界

    系列爬虫专栏

    初学者,尽力实现最小化学习系统

    主题:selenium + PhantomJS + sqlalchemy

    selenium + PhantomJS 教程
    SQLALchemy 教程

    0:说明

    实现编程学习的最小化系统。

    使用selenium + PhantonJS获取网页源代码,此工具在异步加载处网页中很好用。之前使用的不多,觉得尝试使用此工具操作爬虫,目的是抓取中国票房首页的数据, 采用Xpath对数据进行解析。使用ORM技术实现自动创建数据表,并将数据存储入MySQL数据库中。

    任务:抓取图示内容:

    01.png

    1:任务分解

    • 抓取网页源代码
    • 对网页源代码进行解析,抓取需要的数据
    • 数据结构化
    • 创建数据表
    • 将结构化数据存储入数据库中

    技能需求:

    • selenium 的基本使用
    • unittest 的基本使用
    • sqlalchemy的基本使用
    • xpath语法的掌握
    • MySQL数据基本知识

    2. 实战

    全部数据:
    //div[@id="top_list"]/table/tbody/tr/td
    图示:

    02.png
    • sqlalchemy 的使用
      • 创建连接
      • 声明映射文件
      • 创建模式
      • 初始化映射类实例
      • 创建回话
      • 持久化实例对象
    # 核心代码
    engine = create_engine("mysql://root:123456@localhost:3306/test?charset=utf8", echo = True) # 创建连接
    Base = declarative_base()
    metadata = MetaData(engine)
    sql_table = Table("Realtime_film", metadata,
                      Column("id", Integer, primary_key=True),
                      Column("Rank", String(32)),
                      Column("Moviename", String(32)),
                      Column("Realtime", String(12)),
                      Column("Ratio_of_movie", String(16)),
                      Column("sum_movie", String(128)),
                      Column("Ration_of_open", String(128)),
                      Column("Screen_time", String(128)),
                        mysql_engine='InnoDB',
                        mysql_charset='utf8')  # 表声明,定义字段及类型
    sql_table.create()  # 创建数据库表
    sql_table_2 = Table("Realtime_film", metadata, autoload=True)
    i = sql_table_2.insert()
    # for one in Movie_datas:
    #     i.execute(one)
    con = engine.connect()
    con.execute(i, Movie_datas)  # 插入全部数据
    
    

    效果展示:
    自动在本地数据库创建数据表,并把数据插入数据库中.(省去了编写了sql语句)

    03.png

    完整版代码

    3:总结

    崇尚的思维是:
    了解这是什么。
    知道应该怎么做。
    学会亲自动手。

    最怕陷入学而不思则罔,思而不学则殆的地步

    关于本人:
    只有一个职业:学生
    只有一个任务:学习
    在这条路上,充满无尽的困境,我希望成为一个精神世界丰满的人。

    相关文章

      网友评论

      • 磨人的小妖精九斤:额,谈起票房,我第一感觉是通过tushare直接查询。。
        谢小路:@磨人的小妖精九斤 嗯呢, 我差一点想在博文后面谈及tushare..

      本文标题:专栏:013:我要你知道实时票房.

      本文链接:https://www.haomeiwen.com/subject/gxbyrttx.html