学习python进行简单的数据爬取(基于python 3.x)。再进行数据页面解析之后,使用scrapy框架进行爬取数据。没有实现自己预想的效果,着实是自己能力有限,无法灵活使用该框架。就使用自己的办法进行数据爬取。需要用到的模块有 urllib,json,pymysql,datatime,os

首先定义一个类:class MovieSpider(object):

在外部调用类的方法

if __name__ == "__main__":#数据目标地址

DataUrl = "http://piaofang.meituan.com/second-box"

#定义类对象

Spider =MovieSpider()#调用类方法

Spider.DownloadData(DataUrl)

定义下载数据的方法:

defDownloadData(self, url):

self.GetData(url)

打开数据页面,在这里使用urllib模块进行访问打开页面,返回html页面,内容是json格式进行编辑

defOpenPage(self, url):"""打开数据页面"""rep=urllib.request.Request(url)

response=urllib.request.urlopen(rep)#读取页面数据信息

html =response.read()return html

实现获取数据的方法:由于数据目标是以json格式进行保存,需要json模块进行解析获取数据

defGetData(self, url):"""获取数据"""

#将打开的页面数据信息进行解码UTF-8

html = self.OpenPage(url).decode("utf-8")#print(html)

#获取的得数据为json格式,使用json库来进行解析获取所需数据

HtmlJSON =json.loads(html)

DataJSON= HtmlJSON.get("data")

updateInfo= DataJSON.get("updateInfo")

ListJSON= DataJSON.get("list")#print(type(ListJSON))

#print(updateInfo[-9:])

#获取猫眼实时统计的时间-数据展示的时间为:北京时间 12:00:00 改为 年 月 日 时 分 秒

statisTime = datetime.datetime.now().strftime("%Y-%m-%d") + updateInfo[-9:]#print(statisTime)

for ItemList inListJSON:

MovieData=[]

MovieData.append(ItemList["movieName"]) #影片movieName

MovieData.append(ItemList["releaseInfo"]) #上映天数releaseInfo

MovieData.append(ItemList["sumBoxInfo"]) #累计票房sumBoxInfo

MovieData.append(ItemList["boxInfo"]) #综合票房boxInfo

MovieData.append(ItemList["boxRate"]) #票房占比boxRate

MovieData.append(ItemList["showInfo"]) #排片场次showInfo

MovieData.append(ItemList["showRate"]) #排片占比showRate

MovieData.append(ItemList["avgShowView"]) #场均人次avgShowView

MovieData.append(ItemList["avgSeatView"]) #上座率avgSeatView

MovieData.append(statisTime)#print(MovieData)

#self.SaveDataByDB(MovieData)

self.SaveDataByFile(MovieData)

View Code

解析html获取数据之后,使用数据库和文件形式进行保存,使用MYSQL数据保存,需要调用pymysql模块。

defSaveDataByDB(self, MovieData):"""通过MYSQL数据库保存数据"""

#连接数据库

conn = pymysql.connect(database="SpiderDataDB", host = "127.0.0.1", port = 3306, user = "root", passwd = "111111", charset="utf8")#设置游标

cursor =conn.cursor()

strSql= "insert into MaoYanMovieData values (0, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"

#执行插入语句

cursor.execute(strSql, MovieData)#提交事务

conn.commit()#关闭连接

cursor.close()

conn.close()

View Code

成功执行之后可以在数据库中查看到数据信息

使用txt文件格式进行保存数据,把数据保存在py文件同级目录下,需要用到os模块

defSaveDataByFile(self,MovieData):"""通过文件形式保存数据"""

#获取当前项目的工作目录

DirPath =os.getcwd()#print(DirPath)

#E:\PythonByVSCode

#将数据保存在py文件的同一个目录下

FilePath = DirPath + "\\SpiderProject\\MaoYanMovieSpider\\MovieData.txt"with open(FilePath,'a') as f:

f.write(','.join(MovieData))

f.write("\n")

View Code

执行成功之后,可以在py文件同级目录下找到txt文件

该文件中保存了所需要的数据信息,再写入文件时 使用了逗号进行数据种类区分

猫眼api html,python爬取动态数据实战---猫眼专业版-实时票房(二)相关推荐

  1. python动态爬取实时_python爬取动态数据实战---猫眼专业版-实时票房(二)

    学习python进行简单的数据爬取(基于python 3.x).再进行数据页面解析之后,使用scrapy框架进行爬取数据.没有实现自己预想的效果,着实是自己能力有限,无法灵活使用该框架.就使用自己的办 ...

  2. Python爬取动态数据

    项目场景: 在做一个校园新闻小程序的时候,不仅需要获得新闻内容,同时还要获取点击量来排序.爬取静态的数据很简单,爬取动态的数据就有一点麻烦了. 问题描述 比如说我们在爬取这个网页的时候 打开开发者工具 ...

  3. python爬取动态网页_python爬取动态网页数据,详解

    原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了? 浏览器请求数据方式:浏览器向服务器的api(例 ...

  4. python爬取微博数据词云_用Python爬取微博数据生成词云图片

    原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...

  5. python爬取股市数据

    python爬取股市数据 import requests from bs4 import BeautifulSoup as bs import json import csv#定义两个宏变量.#宏变量 ...

  6. Python爬取豆瓣+数据可视化

    博客原文和源码下载:Python爬取豆瓣+数据可视化 前言 前段时间应我姐邀请,看了一下Python爬虫.不得不说Python的语法确实简洁优美,可读性强,比较接近自然语言,非常适合编程的初学者上手. ...

  7. 用Python爬取动态加载的诸如百度的图片

    用Python爬取动态加载的诸如百度的图片 使用原因 代码如下 模块介绍 selenium模块 lxml解析模块 requests模块 去除重复 开启多线程 效果如下 留言 使用原因 学习Python ...

  8. 如何用python爬取网页数据,python爬取网页详细教程

    大家好,本文将围绕python怎么爬取网站所有网页展开说明,如何用python爬取网页数据是一个很多人都想弄明白的事情,想搞清楚python如何爬取网页数据需要先了解以下几个事情. 1.如何用Pyth ...

  9. Python爬取网页数据基本步骤

    Python爬取网页数据基本步骤: from urllib import request response = request.urlopen('完整的网址') import requests imp ...

最新文章

  1. AI新海诚就是在下,不信来玩
  2. pytorch的一些函数
  3. 教程:给初学的几个小例子(待补充)
  4. 怎样获取SQL Server 视图中的内容(视图定义)
  5. 天池 在线编程 最频繁出现的子串(字符串哈希)
  6. python环境及pycharm开发环境安装_Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)...
  7. 《Supervised Descent Method and its Applications to Face Alignment》阅读笔记
  8. wait 和 sleep 区别
  9. Github上好的Android开源框架
  10. 数据加载中,请稍等......
  11. oracle数据库考试答题,Oracle数据库试题
  12. Centos6.7安装Apache2.4+Mysql5.6+Apache2.4
  13. attachEvent
  14. catia逆向建模步骤_逆向流程及CATIA逆向的一些技巧
  15. 深入理解socket中的recv函数和send函数
  16. xp系统重装后无法连接服务器6,winXP重装系统后不能上网的解决方法
  17. Kata 在 Kubernetes 中的网络模型
  18. 可视化讲解:什么是宠物收养所问题?
  19. I MM CO T-CODE
  20. 2-14-Multiple Exemplars-based Hallucination for Face Super-resolution and Editing(ACCV2020)

热门文章

  1. 医疗管理系统-检查组管理
  2. 客2消,客1消,客0消...脉脉劝退客户端多次的你们究竟是何用意?
  3. turtle(海龟)知识点整理
  4. ADGUARD——去除广告利器
  5. Minio Utils
  6. 置换 置换群 应用 +置换群对某些算法问题的解释
  7. 让独居的父母,时刻受到保护,老人远程无线监护解决方案
  8. PaaS 平台学习(开源力量OSF)构建千万级大规模、高可靠PaaS平台的技术挑战 学习笔记
  9. 二、数据模型和关系模型
  10. 模型检测--工具PRISM