ad

学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_7.3.2 编写本地爬虫

网友投稿 113 2023-11-13

【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第7章,第3节,吕云翔、张扬和韩延刚等编著。

7.3.2 编写本地爬虫

这次的爬虫程序,笔者打算将目标着眼于论坛网站,很多时候,论坛网站中的一些用户 发表的帖子是一种有价值的信息。 一亩三分地论坛 (bbs.Ipoint3acres.com) 是一个比较典型 的国内论坛,上面有很多关于留学和国外生活的帖子,受到年轻人的普遍喜爱。本节目的是 在论坛页面中爬取特定的帖子,将帖子的关键信息存储到本地文件,同时通过程序将这些信 息发送到自己的电子邮箱中。从技术上说,可以通过Requests 模块获取页面的信息,通过简 单的字符串处理,最终将这些信息通过 smtplib 库发送到邮箱中。

使用Chrome 分析网页提取帖子的标题信息,这里还是使用右键复制其XPath 路径。 另外,Chrome 浏览器其实还提供了一些对于解析网页有用的扩展。XPath Helper 就是这 样一款扩展程序(见图7- 18),输入查询(即 XPath 表达式)后会输出并高亮显示网页中 的对应元素(效果类似图7-19),便可以帮助开发者验证 XPath 路径,保证了爬虫编写的 准确性。根据已验证的XPath, 就可以着手编写抓取帖子信息的爬虫了

学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_7.3.2 编写本地爬虫

7.3.3 部署爬虫

编辑并调试好爬虫程序后,使用 “scp-P” 可以将本地的脚本文件传输(实际上是一种 远程拷贝)到服务器上。实际上,scp 是 “secure copy” 的简写,这个命令用于在 Linux 下进 行远程拷贝文件,和它类似的命令有cp, 不 过cp 是在本机进行拷贝。

将文件从本地机器复制到远程机器的命令如下:

scp local_file remote_username@remote_ip:remote_file

将 remote_username 和 remote_ip 等参数替换为自己想要的内容(比如将 remote_ usermame 换为 “root”, 因为 VPS 的用户名一般就是 “root”), 执行命令并输入密码即可。如 果需要通过端口号传输,命令为:

scp -P port local_file remote_usernamearemote_ip:remote_file

当 scp 执行完毕,远程机器上便有了一份本地爬虫程序的拷贝。这时可以选择直接手动 执行这个爬虫程序,只要远程服务器的运行环境能够满足要求,就能够成功运行这个爬虫。 也就是说, 一般只要安装好爬虫所需的 Python 环境与各个扩展库等,有时可能还需要配置 数据库。本例中爬虫较为简单,数据通过文件存取,故暂不需要这一环节。不过,编程还可 以使用一些简单的命令将爬虫变得更“自动化”一些,其中 Linux 系统下的 crontab 定时命 令就是一个很方便的工具。

【提示】 crontab 是一个控制计划任务的命令,而 crond 是 Linux 下用来周期性地执行某 种任务或等待处理某些事件的一个守护进程。如果发现机器上没有 crontab 服务,可以通过 “yum install crontabs” 来进行安装。crontab 的基本命令行格式是:crontab[-u user][-e|-1|- r], 其中“ -uuser”表示用来设定某个用户的 crontab 服务;“-e” 表示编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。“-1”表示显示某 个用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。 “-+”表示从/var/spoolcron 目录中删除某个用户的 crontab 文件,如果不指定用户,则默认删 除当前用户的 crontab 文件,等于是一个归零操作。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python 编程与应用实践》_成为Python大佬_5.7 模块和 import 语句
下一篇:学习《Python网络爬虫 从入门到精通》_7.1.2 基于Python 的微信API工具
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×