分享好友 最新动态首页 最新动态分类 切换频道
Python爬虫入门实战(详细步骤)
2024-12-27 19:13

爬虫这个功能,我个人理解是什么语言都能写的,只要能正常发送 HTTP 请求,将响应回来的静态页面模版 HTML 上把我们所需要的数据提取出来就可以了,原理很简单,这个东西当然可以手动去统计收集,但是网络平台毕竟还是很多的,还是画点时间,写个爬虫把数据爬取下来,存到数据库里,然后写一个统计报表的 SQL 语句比较方便,后续如果有时间的话,我会写一个简单的前后端分离的报表样例分享出来。

网上现在 Python 爬虫的课程非常的火爆,其实我心里也有点小九九,想玩点骚操作,不想用老本行去写这个爬虫,当然最后的事实是证明确实用 Python 写爬虫要比用 Java 来写爬虫要简单的多。

首先笔者的电脑是 Win10 的,Python 选用的是 3.7.4 ,貌似现在网上 Python3 的爬虫教程并不多,其中还是遇到不少的问题,下面也会分享给大家。

开发工具笔者选用的是 VSCode ,在这里推荐一下微软这个开源的产品,非常的轻量化,需要什么插件自己安装就好,不用的插件一律不要,自主性非常高,如果感觉搞不定的朋友可以选择 JetBrains 提供的 Pycharm ,分为社区版和付费版,一般而言,我们使用社区版足矣。

笔者这里直接新建了一个文件夹,创建了一个名为  的文件,这个就是我们一会要写的爬虫的文件了,可以给大家看下笔者的开发环境,如下

这其实是一个调试成功的截图,从下面打印的日志中可以看到,笔者这里抓取了三个平台的数据。

笔者使用的数据是 Mysql 5.7.19 版本,数据库的字符集是使用的 utf8mb4 ,至于为什么使用 utf8mb4 而不是 utf8 ,各位百度一下吧,很多人讲的都比我讲的好,我简单说一句就是 Mysql 的 utf8 其实是一个假的 utf8 ,而后面增加的字符集 utf8mb4 才是真正的 utf8 。

而 Python 连接 Mysql 也是需要驱动的,和在 Java 中连接数据库需要驱动一样,这里使用的是 pymysql ,安装命令

 

有没有感觉很简单, pip 是 Python 的一个包管理工具,我的个人理解是类似于一个 Maven 的东西,所有的我们需要的第三方的包都能在这个上面下载到。

当然,这里可能会出现  的情况,视大家的网络情况而定,我在晚上执行这个命令的时候真的是各种  ,当然 Maven 会有国内的镜像战, pip 显然肯定也会有么,这里都列给大家

  • 阿里云 Simple Index
  • 中国科技大学 Simple Index
  • 豆瓣(douban) https://pypi.douban.com/simple/
  • 清华大学 Simple Index
  • 中国科学技术大学 Simple Index

具体使用方式命令如下

 

笔者这里仅仅尝试过阿里云和清华大学的镜像站,其余未做尝试,以上内容来自于网络。

表结构,设计如下图,这里设计很粗糙的,简简单单的只做了一张表,多余话我也不说,大家看图吧,字段后面都有注释了

建表语句提交至 Github 仓库,有需要的同学可以去查看。

整体思路分以下这么几步

  1. 通过 GET 请求将整个页面的 HTML 静态资源请求回来
  2. 通过一些匹配规则匹配到我们需要的数据
  3. 存入数据库

5.1 请求 HTML 静态资源

Python3 为我们提供了 urllib 这个标准库,无需我们额外的安装,使用的时候需要先引入

 

接下来我们使用 urllib 发送 GET 请求,如下

 

User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

这里在请求头中添加这个是为了模拟浏览器正常请求,很多服务器都会做检测,发现不是正常浏览器的请求会直接拒绝,虽然后面实测笔者爬取的这几个平台都没有这项检测,但是能加就加一下么,当然真实的浏览器发送的请求头里面不仅仅只有一个 UA ,还会有一些其他的信息,如下图

笔者这里的 UA 信息是直接从这里 Copy 出来的。代码写到这里,我们已经拿到了页面静态资源
 ,接下来我们就是要解析这个资源,从中匹配出来我们需要的信息。

5.2 xpath 数据匹配

xpath 是什么

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。

从上面这句话我们可以看出来, xpath 是用来查找 XML ,而我们的 HTML 可以认为是语法不标准的 XML 文档,恰巧我们可以通过这种方式来解析 HTML 文档。

我们在使用 xpath 之前,需要先安装 xpath 的依赖库,这个库并不是 Python 提供的标准库,安装语句如下

 

如果网络不给力的同学可以使用上面的镜像站进行安装。

而 xpath 的表达式非常简单,具体的语法大家可以参考 W3school 提供的教程(XPath 语法 ,笔者这里不多介绍,具体使用方式如下

 

这里笔者主要获取了总阅读数、总粉丝数、排名和总点赞数。

这里列举几个最基础的使用,这几个使用在本示例中已经完全够用

表达式描述选取此节点的所有子节点。从根节点选取。从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。选取当前节点。选取当前节点的父节点。选取属性。选取当前节点内容。

还有一种简单的方式,我们可以通过 Chrome 浏览器获取 xpath 表达式,具体操作见截图

打开 F12 ,鼠标右键需要生成 xpath 表达式的内容,点击 Copy -> Copy XPath 即可。

这里有一点需要注意,我们直接通过 xpath 取出来的数据数据类型并不是基础数据类型,如果要做运算或者字符串拼接,需要做类型强转,否则会报错,如下

 

这里需要获取 cnblog 的博客最大页数,首先取到了  ,这里直接做  的话是可以正常打印一个字符串出来的,但是如果直接去做正则匹配,就会类型错误。

5.3 写入数据库

数据库的操作我就不多做介绍了,有写过 Java 的同学应该都很清楚 jdbc 是怎么写的,先使用 ip 、 port 、 用户名、密码、数据库名称、字符集等信息获取连接,然后开启连接,写一句 sql ,把 sql 拼好,执行 sql ,然后提交数据,然后关闭连接,代码如下

 

在本示例中,爬虫只负责一个数据爬取工作,所以只需要一句 insert 语句就够了,然后在每个平台爬取完成后,将这句 sql 中的占位符替换掉,执行 sql 后 commit 操作即可,示例代码如下

 

最后这里给大家免费分享一份Python学习资料,包含了视频、源码、课件,希望能够帮助到那些不满现状,想提示自己却又没用方向的朋友,也可以和我一起来交流呀

编辑资料、学习路线图、源代码、软件安装包等

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

最新文章
零基础教学!如何轻松提交网站到百度收录?
身为致力于SEO优化的专业人员,我深深理解百度收录对于网站的关键性。特此与您分享有关如何提交网站收录地址到百度的实用技巧和窍门。1.了解百度收录原理首先,请您了解一下百度的收录机制吧!实际上,百度采用独特的爬虫系统不断收集和整
阿尔特———卡位Ai应用之汽车机器人设计,万亿级别的汽车机器人市场将造就十倍牛股!
阿尔特———卡位Ai应用之汽车机器人设计,万亿级别的汽车机器人市场将造就十倍牛股!汽车领域中的AI技术应用前景非常广阔,并且正在推动行业的创新变革。以下是一些关键点:1. 自动驾驶技术:AI技术在自动驾驶领域的应用是核心,通过集成
获取 Android 12
您可以通过以下任一方式获取 Android 12:在 Google Pixel 设备上获取 Android 12设置 Android 模拟器获取通用系统映像 (GSI)获取适用于 Android TV 的 Android 12如果您使用的是受支持的 Google Pixel 设备,则可以查看并更新 Android 版
几个有趣Python实例!
以下是几个有趣的Python入门程序示例:1. 猜数字游戏```import randomnumber = random.randint(1, 100)guess = int(input(猜猜数字是多少(1-100):))while guess != number:if guessnumber:print(猜小了)else:print(猜大了)guess = int(in
饮料营销新策略:7喜品牌焕新案例分析
第2351篇特别提醒:本公众号所刊发稿件、图片均用于内部交流使用,并在显要位置注明文章出处和来源,若涉及版权,或版权人不愿意在本平台刊载,请版权人可联系我们要求撤下您的作品。在快速变化的饮品市场中,品牌焕新是企业适应市场变化、
笔记本电脑十佳型号(2024年2月小虫排行榜 轻薄游戏高端综合榜)
此文最后更新日期为:2024年2月26日 极速空间是电脑配置专业研究网站,小虫站长有27年电脑软硬件经验,接触过上万种不同配置的电脑,热心传授电脑知识。由于不少用户在购买笔记本时候有选择困难症,因此小虫站长把目前市场在售的笔记本做
谷歌playstoreGoogle Play 商店)
《谷歌playstore》一款谷歌官方的应用市场软件,在这款软件中你几乎可以下载各种正版的应用,包括了各种不同的游戏和应用工具,同时提供了丰富的服务,在国外几乎出于垄断地位,各种应用都可以在这里找到。Google Play 商店 - 适用于您的 A
SLAM十四讲第十章g2o_custombundle注释
工程组织结构 包括common,ceres,data以及g2o求解程序g2o_bal_class和g2o_bundle 一、 common: 通用工具模块。 包含一些通用的基本工具,如命令读取和解析,会用到的简单数学工具(生成随机数、旋转
抖音的外链建设规划:全面指南
在竞争激烈的数字营销环境中,外链建设是提高网站在搜索引擎结果页面 (SERP) 中的知名度和排名的至关重要的策略。对于抖音这样的热门社交媒体平台而言,外链建设至关重要,因为它有助于建立权威性、提高可见度并吸引高质量的流量。规划阶段
规划大赛 经验启航
为增强大学生职业规划意识,尽早为就业做好充分准备。海南师范大学于11月30日成功举办了2024年大学生职业规划大赛决赛。在此次赛事中,我院学子表现出色,其中王艺珈荣获就业赛道一等奖,叶晨琳荣获成长赛道优秀奖。接下来,让我们一起来
相关文章
推荐文章
发表评论
0评