分享好友 最新动态首页 最新动态分类 切换频道
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电子书

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

四、入门学习视频全套

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

最新文章
班主工作总结
h3br班主任工作总结br东胜区实验中学279班聂振灵br一学期临近结束,我作为初三的班主任,也完成了本学期的br各项工作。在这半年里,我始终本着以学生为本,全面发展、br育人为先的原则,积极履行班主任的职责,努力营造一个良好br的班级氛
云手机亲民智能便宜辅助:星星云手机的创新之道
**一、亲民价格:打破成本壁垒**在云手机市场中,价格往往是消费者考量的重要因素。星星云手机以其独特的价格策略脱颖而出,成为亲民智能的典范。传统的云手机服务,由于涉及到服务器成本、技术研发等多方面的投入,价格常常居高不下,使得
怎样上传文件到Windows操作系统云主机?
安装传输工具在本地主机和Windows云主机上分别安装数据传输工具,将文件上传到云主机。例如QQ.exe。本地磁盘映射(推荐使用)使用远程桌面连接MSTSC方式进行数据传输。该方式不支持断点续传,可能存在传输中断的情况,因此不建议上传大文件
windows优化大师注册机(通用版)v7.75 Build 7.806 珍藏版
优化大师注册机软件介绍Windows优化大师是一款功能强大的系统工具软件,它提供了全面有效且简便安全的系统检测、系统优化、 系统清理、系统维护四大功能模块及数个附加的工具软件。使用Windows优化大师,能够有效地帮助用户 了解自己的计算
华尔街顶级分析师看好GitLab等股票长期增长潜力
(原标题:华尔街顶级分析师看好GitLab等股票长期增长潜力)
这两天软考成绩出来了,顺利拿下!
过几天软考就要开始了,身边不少报名的朋友已经开始临阵磨枪了,紧张氛围拉满。其实关于软考的含金量,应该算争议性比较大的话题。认可它的人觉得:证书不仅全国范围内永久有效,还能积分落户、个税抵扣、投
手机耗电快、反应慢的原因找到了, 都是因为它, 再不看就晚了!
今天小编给大家要说的故事你们可能猜不到: 虽然说时间可以治愈一切,但是别人带给你的痛苦真的没有那么容易释怀!就像下面说的几个生肖,在经历了一次次伤害之后就永远不会原谅对方。所以,科技紫微星座网也提醒各位,别轻易去伤害爱你的人
中国人工智能生成内容(AIGC)行业产业链全景、市场规模及投资前景研究报告(2025版)
在当今这个信息爆炸的时代,如何精准把握市场动态,洞悉行业趋势,成为企业和投资者共同关注的焦点。为此,智研咨询分析团队倾力打造的《2025-2031年中国人工智能生成内容(AIGC)行业市场全景调查及战略咨询研究报告》,旨在为各界精英提
跳转微信公众号解决方案?你想不到的最快捷引流方式?
目前最简便、最快捷且流量最大的方法是使用微信中的“扫一扫”功能,通过扫描商家自己的微信公众号二维码实现进入公众号的目的。如果不想使用二维码,而是使用外链的方式让用户进入商家自己的微信公众号.可以借助第三方外链平台实现[比如:
粤剧《牡丹亭》之游园惊梦(文汝清/曾小敏演唱)
粤剧《牡丹亭》之游园惊梦演唱:文汝清 曾小敏杜丽娘【游园曲】春光满眼万花妍,三春景致何曾见。玉燕双双绕翠轩,蝶儿飞舞乐绵绵,乐绵绵,万花争吐艳。绿柳娇嫩,倚池畔随风曳展。心忧岁月变迁,一朝美艳化烟,叹春光易逝愁深牵。看牡丹
相关文章
推荐文章
发表评论
0评