首页 > 编程知识 正文

python挂载阿里云盘(scrapy 全网爬虫)

时间:2023-05-03 08:26:43 阅读:70770 作者:4569

接着前面的几篇文章说了。

我写了爬行动物。 然后可以在当地运行了。

这不是最终的目的啊。

我们在服务器上运行爬行动物。

利用周末,同时腾讯送出的7天云服务体验也快到期了

现在,让我们再一个手把手地将爬虫部署到服务器上。

绝对从零开始教。

一步一步来,还有截图

让你从《倔强青铜》到《最强王者》

为什么要写这篇文章,是为了让你成为“最强王者”! Scrapy的文章有很多,但99%的文章是以写爬虫为结尾的。 那之后怎么使用? 你要去哪里? 没有全部给磁带。 这里说明你可以把你的小虫放在服务器上! 但是如何引进,

ddz去百度查询《scrapy爬虫部署》时,有几篇文章说,虽然使用的是Scrapyd,但他们只是很容易部署到windows机器上,而且都是本地部署的。 对想大显身手的你没有任何帮助。 那么,我来做这个向导吧。 带着你一步一步,用Scrapyd将Scrapy爬行器部署到偏远地区的腾讯云服务器上吧。

看以前的几排文章,大家似乎对爬行动物很感兴趣。 在之前写的两篇文章《【Python实战】手把手超详细教程中,Scrapy告诉大家,Scrapy爬上了达盖尔的社区,拿着鸡蛋》和《【Python实战】Scrapy中,“1024个网站的种子我觉得没有Python并不那么拘束,不像教科书上的说明,实际上是可以平时运用、编写的程序语言。 所以,这个稍微提高一点吧:

把我们的爬虫放在腾讯云服务器上。 别乱说,进行实战操作吧。

这里可以选择任何云服务。 阿里巴巴云、安讯云、腾讯云和其他云都没有问题。 引进方法基本相同,在此为了方便,笔者选择了滕信云进行说明。

我们选择了腾讯云,先去腾讯云官网注册注册。

1https://cloud.tencent.com/复制码dddz当我看到这篇文章的时候,我不知道数字服务器的优惠是什么,反正我当时给了我7天的云服务器体验。 我打算试着得到这个。 新闻云的界面是这样的:

登录后,购买服务器后,云服务器界面中将显示服务器实例。

接口上有你服务器的ip地址。 要远程登录,我们需要知道服务器的公共ip地址:

要在本地使用Mac终端的ssh登录并输入命令,请执行以下操作:

复制1$ ssh root@1XX.XXX.XXX.XXX代码并输入密码,登录成功后,将显示以下界面:

卧床不起。 已尝试登录超过3万次。 如果没有足够的安全性,服务器权限似乎很容易被其他人破坏。

OK,服务器的东西暂且放在一边。 输入

复制1$ exit代码并退出登录。 先谈谈爬行动物吧。

在这里,我们配置的爬行动物正在使用

是Scrapy写的。 我们使用的工具有Scrapyd和Scrapyd-client。 这两个专门用于部署Scrapy爬行器。 OK,既然要配备爬虫,先看看爬虫的样子吧。

这里布置的爬行动物是我未来项目的简单版本。 请看《1024种吞噬》和《教你用“手”爬行动物爬达吉列昂社区》两篇文章中的爬行动物。 其中还有详细的爬行动物制作指导教程。 所以,今天我们部署的爬行动物是第一个用requests编写的爬行动物《用【Python实战】代码访问1024个网站》的Scrapy版本。

之所以成功引进这个,是为了日后在我的公众号“皮克斯的铲子粪官”中添加“Daily1024”的自动回复功能。 今后也会发表这样的文章,敬请期待。 那么,这里简单介绍一下这个配置的爬行动物的长度。

工程目录仍然很简单,与标准Scrapy创建目录相同。

关于工程的写法,请参考《用手把手教你用爬行动物爬达盖尔社区》的文章。

我们这次的爬虫项目叫DailyWeb,里面的虫子叫Caoliu。 爬行动物“Caoliu”的主要功能是从不同的主题区域读取当天发布的帖子,存储这些帖子的url、title、帖子时间和id,并将其保存到数据库中。

想要爬虫源代码的学生可以关注“pickle的铲子粪便官”,然后回复“部署服务器爬虫”即可获得。 如果有什么疑问的话,可以在公众号上留言。 我会逐一检查。

像爬行动物一样,我们部署的任务现在有两个部分:远程服务器和本地计算机。 我们将本地计算机上的爬虫部署到远程服务器上。 上一篇文章论述了两个东西Scrayd和Scrapyd-client。 每个安装位置都是远程服务器的安装Scrapyd,在需要本地上载的计算机上安装Scrapy-client。 在本地计算机上安装脚本客户端。

1$ pip i

sntall scrapy-client复制代码

安装完成之后,我们需要进入到你Scrapy工程目录下,执行

1$ scrapyd-deploy -l复制代码

就会生成一个scrapy.cfg文件。这个文件就是项目的配置文件,里面大概长这个样子:

1[settings]2default = DailyWeb.settings34[deploy]5#url = http://localhost:6800/6project = DailyWeb复制代码

这里,我们需要改一些东西,将url的注释取消掉,同时,改成你服务器的地址,再在deploy后面加上一个远端地址的名字。

1[settings]2default = DailyWeb.settings34[deploy:TencentCloud]5url = http://119.75.216.20:6800/6project = DailyWeb复制代码

OK,本地的配置到这里就结束了。我们接着之前的教程来登录你远端的服务器,登录成功之后,我们需要安装Python3.6,以及Scrapyd等东西。

你只需要按步骤输入一下命令行就可以,有些命令执行起来可能会时间比较长,请稍作等待 :

1 // 安装依赖包 2# yum -y groupinstall "Development tools" 3# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 4 5 // 下载 Python 3.6.2 6# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz 7 8 // 创建安装目录 9# mkdir /usr/local/python31011 // 安装 gcc12# yum -y install gcc1314 // 安装 Python 3.6.215# tar -xvJf Python-3.6.2.tar.xz16# cd Python-3.6.217# ./configure --prefix=/usr/local/python318# make && make install1920 // 安装scrapyd21# pip3 install scrapyd2223 // 安装scrapy24# pip3 install scrapy25 // 安装scrapyd-client26# pip3 install scrapyd-client27 // 安装BeautifulSoup4,因为爬虫中用到了,所以这里得安装一下28# pip3 install bs4复制代码

安装好之后,运行命令

1# '/usr/local/python3/懦弱的招牌/scrapyd'复制代码

会启动scrapyd,如下图:


Scrapyd启动后,是可以通过访问6800端口查看到网页信息的。那么这里我们如果想通过外网ip访问到网页,是失败的 ,我们需要做一些修改需要修改一些设置。

首先,我们得修改default_scrapyd.conf文件。这个问题件的路径在下面:


我们需要将 懦弱的招牌d_address = 127.0.0.1 改为 懦弱的招牌d_address = 0.0.0.0,这样,就可以通过外部访问本地的ip了:


接着,我们还需要给我们的云服务器配置一下安全组,要把6800的接口权限开通,这样才能够通过外网访问到服务器的网页。

腾讯云的控制台页面,左侧选择安全组,

选择新建按钮,我们这里选择常用的端口暴露,即第二个。


然后选择修改规则,因为我们要把6800加进去。


选择添加规则,将ip设置成 0.0.0.0/0 即全网ip,端口写 tcp:6800,选择允许,然后点击确定。


安全组添加好了,那么我们回到服务器实例页面,在更多里面选择配置安全组:


选择我们刚才添加的那个安全组,点击确定。


OK,

现在就是见证奇迹的时刻 ,在自己的浏览器里面,输入自己服务器的公网ip再加6800端口号,比如我,我的服务器公网ip是:119.75.216.20,那么我在浏览器里面输入的网址就应该是 119.75.216.20:6800。这样, 就可以看到Scrapyd的页面!!


由于我们还没有部署爬虫,所以,点击Jobs和Logs链接进去之后,都是空页面。

啊,我的快捷标签大家就别关注了。看到这个页面就说明你的Scrapyd在远端的服务器上面已经跑成功了。

当然,这些端口6800什么的,都是可以配置的,配置文件就是在上面所说的那个default_scrapyd.conf文件。最关键的就是要给服务器配置安全组,将对应的端口开放,否则访问不成功。

好了,接下来,我们就该关注本地了,将我们的爬虫部署到服务器上。

本地进入到爬虫工程的目录。因为刚才输入了$ scrapyd-deploy -l生成了一个scrapy.cfg文件,我们需要对这个文件修改一些东西。将文件修改成一下样式:

1[settings]2default = DailyWeb.settings34[deploy:TencentCloud]5url = http://119.75.216.20:6800/ 6project = DailyWeb复制代码

然后本地按照scrapyd-deploy <host> -p <project>输入指令:

1$ scrapyd-deploy TencentCloud -p DailyWeb复制代码

若是在这期间有错误,根据错误提示来自行安装Python库就好。等到部署成功,会出现如下画面:


看到,服务器给我们返回了一个json格式的结果。这个就是Scrapyd的最大特点,通过json来控制操作。上面显示的是部署成功。

我们如果想检查部署的工程,按照scrapyd-deploy -L <host>,在本地输入命令:

1$ scrapyd-deploy -L TencentCloud复制代码

结果如下:


看到我们的DailyWeb爬虫已经成功部署到了腾讯云服务器上了。

我们可以通命令:

1curl http://119.75.216.20:6800/listprojects.json复制代码

可以看到远端服务器上的爬虫:


OK,我们现在如果想要爬虫启动,那么只需要输入命令:

1$ curl http://119.75.216.20:6800/schedule.json -d project=<project name> -d spider=<spider name>复制代码

我们这里输入的命令则是:

1$ curl http://119.75.216.20:6800/schedule.json -d project=DailyWeb -d spider=Caoliu复制代码

输入完,本地的terminal会呈现:


我们在浏览器里,访问服务器的6800端口,就能够在网页的Jobs里面看到爬虫工作状态了:


可以看到,爬虫的进度在Running里面,当爬虫爬完了,会在这个里面:


我们退到上级页面,从Log里面看,就发现有一条log文件。


23K的log文件,


文件的目录在:

1./logs/DailyWeb/Caoliu/290bee7261c411e8872052540089e098.log复制代码

打开之后,就能看到刚才爬虫运行时候留下来的Log了。关于Log怎么打或者打什么,这个是Scrapy框架里自己写好的,非常方便,直接导入python的logging库,按照标准方法打印就可以。

那么,我们应该如何取消一个Job呢?输入命令:

1 curl http://119.75.216.20:6800/cancel.json -d project=<project name> -d job=<job id>复制代码

上面的job id,就是在Jobs页面里面看到的。

如果要移除一个工程,命令则是:

1curl http://119.75.216.20:6800/delproject.json -d project=<project>复制代码

这里说一个奇淫巧技,由于服务器的scrapyd需要后台运行,这里我采用了# setsid scrapyd命令来后台开启服务,这样关闭窗口后仍能进行连接。需要结束scrapyd进程时,利用# ps -ef | grep -i scrapyd 查看PID号,再# kill -9 PID结束进程。

若是想要固定的去执行爬虫,这里可以使用Linux自带的crontab。这个我还没研究,应该不难,等下一步了可以放出来给大家。

OK,到此为止,如果你能跟着我的步骤一步一步做到这里,首先恭喜你,说明你很优秀,很有毅力,绝对是个编程的料,而且还有可能成为

Python大神 。 对于优秀的人而言,奖励是必须的,可以关注『皮克啪的铲屎官』,回复『服务器爬虫』,即可获得爬虫的源码,同时,可以多试试回复几次,说不定有惊喜呢。

最后感言一下,为什么要写这种手把手,一步一步来操作的文章,是因为,好多同学都听说过Python,而且对Pyton抱有期待,想去学。但是,好多同学非科班出身,或者之前就从来没学习过编程,哪像我们这种编程的老油条,拿到一门语言都有自己独特的学习方法能够快速掌握。这些同学就很困惑,因为大家都说Python好,Python好学,Python容易,Python简单,Python能干很多事情事情。。。但是当自己面对Python的时候,Python确是一座大山。没有人给他指引道路,没有人告诉他,那片丛林第几棵树和第几棵树之间有通往下一关的道路,导致他们很苦恼,很困惑,从而就会打击学习编程的积极性,就会产生“Python这么简单我都不会,看来我不是学习编程的料”这种负能量的想法。同学!这样想是不对的!学习编程,你要坚持啊!罗马并非一日建成的,任何看似熟练的技能,都是背后日日夜夜反复打磨出来的结果。你如果对Python感兴趣,喜欢学Python,我可以给你带路,我写这种手把手的文章,就是为了给你们引路,让更多的同学来投入到他们热爱的编程学习中,体验编程的快乐。若是你想学习,想改变自己,或者周围有同学想学习编程,请你手动把这篇文章分享出去,我希望,通过有趣的实战Python项目,能够让Python编程不再那么空洞,而且,新手来了可以根据我的步骤一步一步来,感受程序运行起来的快乐。您的分享,就是对我最大的支持。

OK,以上就是这期手把手一步一步将Scrapy爬虫部署到服务器上的教程。

周末写了一天。出文不易,希望大家喜欢。

推荐阅读

【Python实战】用代码在1024论坛实现自动回贴,快速升级,有彩蛋
【Python实战】手把手超详细教程教你Scrapy爬达盖尔社区,有彩蛋
【Python实战】用Scrapy编写“1024网站种子吞噬爬虫”,送福利
【Python实战】用代码来访问1024网站,送福利

                   


                       关注这个神奇的公众号,里面会有1024的神奇代码哦

                                    



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。