前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >专栏:013:我要你知道实时票房.

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

作者头像
谢伟
发布2018-06-06 11:49:06
4130
发布2018-06-06 11:49:06
举报
文章被收录于专栏:GopherCoderGopherCoder

用理工科思维看待这个世界 系列爬虫专栏 初学者,尽力实现最小化学习系统

主题: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 的使用
    • 创建连接
    • 声明映射文件
    • 创建模式
    • 初始化映射类实例
    • 创建回话
    • 持久化实例对象
代码语言:javascript
复制
# 核心代码
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:总结

崇尚的思维是:

了解这是什么。

知道应该怎么做。

学会亲自动手。

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

关于本人:

只有一个职业:学生

只有一个任务:学习

在这条路上,充满无尽的困境,我希望成为一个精神世界丰满的人。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.05.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0:说明
  • 1:任务分解
  • 2. 实战
  • 3:总结
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档