| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python爬虫 -> 正文阅读 |
|
[Python知识库]Python爬虫 |
Python轻松实现数据爬取和数据可视化目录 效果演示Python实现豆瓣top250数据演示 文章目录所需要的技术栈:1.Python基础(这个大家只要是有一定的java基础 基本都可以类比进行学习 ) 2.数据库的基础 3.Python爬虫 4flask框架(可以理解为一个轻量级的web开发框架) 5Echarts (实现我们的数据可视化的) 6.WordCloude(词云 帮助我们创建词语) 1.初始网络爬虫
简单来说就是你可以利用这个来从网页上获取到你想要获取到的数据 2.如何实现这样的一个网站? 1.爬取网页我们要想获取到数据的话 我们最重要的一点就是要如何获取网页中的全部数据 第一个就是我们要将网页的源代码获取到 这里我们如何获取 ? 其实很简单 我们的Python其实是帮助我们封装好了很多API 很多的东西都是我们可以直接去调用的
说一下 这个urllib这个就是获取网页数据通过指定的url 我们通过这样的一个请求打开我们的百度的网址 会从服务器获取到响应 然后我们将这个响应进行打印并且进行解码 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DEbJ3n0V-1645700766020)( 这样我们就拿到了我们想要的数据源代码了 但是只是源代码 里面的一些数据并不是我们真正想要的具体的数据 但是你也只是凑巧说是 人家百度可以让你直接爬 看一下这个 豆瓣的网站 我们这样就直接报错了 但是这样的一个报错信息的原因是什么? 其实就是因为我们被人家识别出来了 我们是一个爬虫去模仿浏览器 向服务器发送请求,但是有一个问题就是 我们的爬虫就是未必是很精准的 我们的模仿的可能根本就不像浏览器 那么就会被识破 那么我们如何伪装?
来 看一下 这个header你可以理解为 是浏览器向我们服务器发送的信息 这个里面可能包括是 我是一个什么样的浏览器, 然后我们的服务器会根据你给的信息来返回给你数据 ,那么我们就要仿照这浏览器去实现 因为我们本是是爬虫 我们要尽可能的装的像浏览器 这样我们才可以获取到服务器器的信任 只有这样的话 我们才能拿到我们想要的数据 那么怎么封装? 就是我们刚刚那个语句 我们好好的封装一下我们的请求 只有这样 我们才能够更好的向我们的浏览器进行靠拢 然后将这个封装好的请求发送出去 这样被服务器接收之后的被认可的可能性更大 来看一下这次我们封装好我们的数据之后 看看可不可以获取到我们想要的数据 我们一看成功了 这就是说明 我们的豆瓣被我们骗过了 我们成功的获取到了我们的网页源代码 那么这样我们就可以将我们的刚刚写的那段代码封装成一个函数进行处理
这样我们要是下次想获取其他的网页的源代码的时候 我们就可以进行使用了 2.解析数据(通常是爬取一个网页就进行一次解析处理)通过刚刚的步骤 我们就可以获取豆瓣的网页源代码 这是一件比较高兴的事情了 那么我们可以进行下一步 解析我们的数据 我们想要拿到的是这些数据的信息 那么单单的获取到网页源代码是远远不够的,那么我们就要想办法将我们的获取到的网页源代码进行解析处理,得到我们想要的数据 那么我们在这里需要引入我们的bs4里面的beautifulSoup进行帮助我们解析数据 来 我们先看一下
看一下第一个代码 进行解析 这个是我们的网页代码(我事先放到了我的一个目录下面 方便等会使用io流进行打开进行处理) 那么我们先进行的一波操作就是说 我们如何将我们的数据进行解析处理
此时的bs已经是解析好的数据 我们可以现在进行将bs进行打印
从这里我们可以看到的就是这些数据 title我们要是想要获取什么信息的话 我们就直接通过bs进行获取 bs.a我们就可以找到整个网页源代码里面的a标签在哪里,bs.title我们就可以找到我们的title标签的位置在哪里 但是有一个问题就是 我们的仅仅是只能拿到一条数据 我们的整个网页源代码中的数据可不止仅仅只有这些数据 那么我们就要进行另一个搜索方式进行处理 在进行讲解拿到所有数据之前 我们先说一下如何仅仅是获取到标签里面的文字 也即是字符串
这一步就是褪去了外部的标签title 而是直接去获取我们内部的文字 下面在介绍几个可以进行全篇查询的方法 bs.find_all这一个就是我们刚刚bs对象里面的一个方法这个方法我们可以进行搜索到我们想要的数据就是find_all
这样我们就获取到了所有含a标签的数据 但是有的时候我们未必想要获取那么多的数据 我们可以进行限制
这句话就是说 我们可以将我们的数据进行limit进行限制处理 就是说我们只会查询出来3条数据 3条和我们有关的数据出来 这样一来的话 我们的数据信息就可以得到由我们进行操控可以出现多少条信息 css选择器进行搜索处理
这里就是和我们的css里面的选择器一样 第一个就是我们标签选择器 第二个是我们的类选择器 我们可以通过我们的类标签获取我们具体的数据 只要是类当中出现过的 我们这里都可以进行获取到我们想要的数据 正则我们由于后面的数据处理会用到我们的数据的匹配处理 那么我们就应该不断的进行的是正则表达式的学习 这里我们就简单介绍一下 不做深入的学习 就是先满足我们的项目的需求
来看一下就是这个pat可以说是一个标准 这个标准就是规范了我们的数据 就是定义一个规范 re.compile的操作 但实际上还可以不创建那个规范 直接使用re进行查找
这个也是进行筛选 不过这个就是如果筛选到不是我们想要的数据时候 我们就不会继续进行筛选 会先停止 从下一个位置继续进行匹配处理
好了 现在我们的准备工作做的差不多了 我们开始进行我们的数据的解析 我们先定义一下几个表达式(就是我们要进行实际筛选的表达式)
这个的依据是什么 要想获取到 这个需要我们自行去观察源代码 去寻找规律 就是比如说 我们的电影链接式什么 我们观察多条电影链接的信息 我们找到的是他的前后的有的特征 我们根据这个特征 就可以获取到我们想要获取的数据 这里需要大家自己去搜索我们的网页 大家自己去寻找规律 好了有了寻找的规范 我们下一步
然后经历以上的循环处理 我们将我们的数据放到了datalist里面了 我们之后就需要对他进行操作 3.保存数据1.保存数据到Excel里面去先给大家看一下效果图片哈 这个操作其实也是很简单 我们利用的就是Python强大的封装好了很多功能强大的API都是提供给我们可以直接使用的
你可以认为我们的操作就是创建一个表出来 然后将我们想要书写的数据放到里面去 然后我们在按照我们刚刚给的数据放到我们的Excel表里面就行了
刚刚只是把我们的数据放到我们的Excel表里面 但是我们要是想要真正的将我们的数据放到数据库里面 不然我们等会进行列表渲染的时候 我们的数据不能显示到我们的网页上边 2.存储到数据库这里我们采用的是一个轻量级的数据库sqllite 因为这个是Python里面内置的 所以我们也就是直接使用这个 进行处理 当然大家要是想使用mysql也是没有问题的
只需要注意几个步骤 我们需要先进行数据库的连接 也即是我们的conn进行连接 然后我们进行的是游标的获取 这个后来用于执行我们的sql语句 然后我们可以在sql这个变量里面书写我们的sql语句 属性完成之后 关闭连接 也就是说 我们的流程就是这样的 那么只需要在我们想要放置数据的数据库里面新建一张表 然后将我们的表插入到里面去就行 我们书写一个函数进行我们的数据库的初始化
然后我们利用循环处理将我们的数据放置里面
成功的图片 当我们成功的将我们的数据放置到里面的时候 我们就可以进行下一步 进行页面的编写 4.页面编写这里我们是直接从网上搜索的模版 ,因为我们主要的目的是我们将我们的数据显示到页面上边去 所以说 我们没有必要太过于关注前端页面的编写 所以说 我们就直接找了一个模版 然后这里有一个新的技术就是一个简单的web框架
flask这个就是类似一种路由解析+模版渲染的一种功能 我们就是将我们的网址输入到浏览器中 我们可以利用它的模版渲染将我们的数据渲染到上边去 然后讲一下如何将我们的数据放到前端页面里面去 我在这里就不展示我的前端界面是什么样子了 这个大家可以自行发挥自己的想象力 去绘制出更好的页面 只要可以留出放我们数据的页面就行 看着一段代码
我们的return中 我们将我们的数据以movies变量进行接收 然后我们在前端就可以进行实际的操作我们从后端传入的数据 然后写入我们特定的语句 这里其实和vue很像 就是要一种数据的渲染 看一下我们的渲染语句好了
数据渲染完成之后就是下面的结果 然后这里给大家推荐一个数据可视化的 网站 里面有很多的数据可视化的东西 里面有大量的图标 我们只需要将我们的想放的数据放到里面就行了 我们就可以直接从里面去获取到我们想要的图表进行操作 我们要先进行的可以从这个图表里面调节好我们想要的数据如何进行展示我们的数据 修改好了 直接拿过来用就行了 也就是渲染的操作处理 其实总的说一下这个 就是将我们是先储存好的数据放到我们的前端的页面上边去 就是这样的模版渲染 就是说 我们的Python也是可以实现简单的web开发 结语大家最好还是尽量动手去操作一下 这样的话更加有助于大家实际的进行操作 然后我的代码放到这里 大家有需要直接可以去拿 Python数据分析: 基于Python实现简单数据分析 (gitee.com) 数据可视化?? 如何使我们的数据 数据可以被理解 就是不单单是存储起来,数据可视化的需求就很需要被得到 flask 作为的是web框架 最初的作用是为了开发我们的web应用程序。 这个是帮助我们做网站的 echarts是一个开发的图标就是用js做的 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 0:16:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |