动态加载数据 数据库,请求页面等内容讲解
树图思维导图提供 第四章 爬虫动态加载数据 在线思维导图免费制作,点击“编辑”按钮,可对 第四章 爬虫动态加载数据 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6e54d0bf80b2448bbde4a782132fddfa
第四章 爬虫动态加载数据思维导图模板大纲
有时用户在使用 urlib 库或 requests 库爬取网页时,爬取到的结果可能和在浏览器中看到的不一样,在浏览器中正常显示的页面数据,在爬取到的结果中却没有。这是因为 urllib库或 requests 库发送请求返回的是网页源代码 (网页源代码中不包含由 JavaScript 动态加载的数据),而浏览器中的页面是经过 JavaScprit 动态加载的。下面以京东搜索“Python’ 网页为例来说明什么是动态加载数据。
分析页面
JavaScript动态加载数据一般使用Ajax 技术 (Ajax 指异步JavaScript和XML,是一种创建交互式、快速动态网页应用的网页开发技术),它通过在后台与服务器进行数据交换,实现网页的异步更新。在确认想要获取的网页数据是通过 Ajax 动态加载的,这时,可通过分析Ajax 请求获取真实的URL,然后使用 urllib 库或requests 库构造并发送同样的请求即可。
Selenium简介
实际动态网页中,很多Ajax 请求的参数是加密的,用户很难通过分析 Ajax 请求获取真实的URL,还有一些动态加载数据并不是 Ajax 生成的,此时,可以使用 Selenium 模拟浏览器的方法来获取网页动态加载和渲染的数据。 Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作(如单击输入等操作)。同时还可以获取浏览器当前呈现的页面内容,做到可见即可爬。Python 提供了 selenium 库来实现 Selenium 的操作,selenium 库不是 Python 内置的标准库,使用之前需要安装。
Selenium库的使用
selenium 库支持多种浏览器。例如,Google Chrome、Firefox、Edge 等网页浏览器,Android、BlackBerry 等手机端的浏览器以及 PhantomJS 无界面浏览器等。
爬取到的数据不仅可以存储至文件,也可以存储至数据库。下面介绍两种常见的数据库,MySQL 和 MongoDB。MySOL 是关系型数据库,它将数据保存在不同的二维表中,表中每一列是一个字段,每一行是一条记录;MongoDB 是非关系型文档数据库,其数据存储形式类似JSON 对象,它的字段可以包含其他文档、数组及文档数组,形式非常灵活
MySQL数据库
pymysql 库提供 connect0方法连接数据库,其方法原型如下:connect(host,port,user, password,db,charset,connect timeout,use unicode) (1)host: 数据库地址,本机地址通常为 127.0.0.1,也可设置为 localhost,默认为None。 (2) port: 数据库端口,通常为 3306,默认为0。 (3)user:数据库用户名,管理员用户为 root,默认为 None。 (4)password:表示数据库密码,默认为 None。 (5)db:表示数据库库名,无默认值。 (6)charset: 表示插入数据库时的编码,默认为 None。 (7)connect timeout: 表示连接超时时间,以秒为单位,默认为 10。(8)use unicode:表示结果以unicode 字符串的格式返回,默认为 None。
MongoDB数据库
pymongo 库使用MongoClient 类连接数据库,须指定连接的数据库地址(如localhost)和端口(默认为 27017),返回 MongoClient 对象。使用 MongoClient 对象选择数据库,语法格式为“对象.数据库名”(也可写为“对象[“数据库名]”),如果数据库不存在则新建一个数据库,返回 Database 对象。使用 Database 对象选择集合,语法格式为“对象集合名”(也可写为“对象[“集合名’]”),如果集合不存在则新建一个集合,返回 Collection 对象。
1.动态加载数据的爬取方法有逆向分析请求页面和 Selenium 模拟浏览器两种
2.逆向分析请求页面需要分析加载出页面的真实请求,然后构造并发送同样的请求,
3.Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作。
4.Python 提供selenium 库来实现 Selenium 模拟浏览器的操作。
5.pymysql 库通过执行 SOL 语实现连接、创建、插入、更新、删除和查询 MySOL数据库的功能。
6.pymongo 库提供了连接、创建、插入、修改、删除、排序和查询 MongoDB 数据库的方法。
树图思维导图提供 BI大数据课程 在线思维导图免费制作,点击“编辑”按钮,可对 BI大数据课程 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:507bb5b47558c8c0e5c1493d505c4a10
树图思维导图提供 第四章 路面基层和底基层材料 在线思维导图免费制作,点击“编辑”按钮,可对 第四章 路面基层和底基层材料 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:78c2a5ecc7d83f7a4a2de17eb49860b1