小猪的Python学习之旅 —— 8.爬虫实战:刷某博客站点的访问量

引言python

Python并发的文章还在肝,比较乏味,写个爬虫小脚本玩玩,想起以前 在某博客站点看到,一我的发布的渣渣文章,半个小时不到2W访问量, 还连续几篇都是,而后一个留言或者点赞的都没有,比较多人看的鸿洋 的博客,一篇文章挂了3个月也才1w3的访问量,想一想都知道是爬虫刷的, 小猪顿时正义感做祟,忍不住向他们的客服进行了举报,然而石沉大海, 并无获得任何的回复,不由感叹,时过境迁,物是人非,唉...git

最近偶尔有次点出了排行版,看到了这样的东西???github

卖优惠券的都没人管了...卧槽,这还能忍,这样对得起那些 辛辛苦苦肝出一篇技术文章的大佬和萌新吗?vim

刷访问量脚本谁不会写,并且这个博客站点不用登陆就算一次 访问量,写个无限循环,而后换着ip去访问博客就好了。 具体的流程:浏览器

  • 1.抓取你博客全部的文章URL存起来;
  • 2.准备一堆代理ip(西刺不少都不行,能够上网买5块2W个高匿代理ip);
  • 3.while True:换着ip,随机访问本身的一篇文章;

是的,就是这么简单,没有任何反爬虫或者惩罚,以前那我的 已经大摇大摆的刷到每篇文章5W多访问量。因此我选择搬到掘金...bash


1.写一个本身的经常使用模块

在写简单爬虫的时候,有一些很经常使用的代码段,好比发起一个 请求,而后得到一个Response;下载图片;读写文件等,其实 均可以写到一个py文件里(有点像Android里的工具类),而后要 用到的时候调用下就能够了,使用的时候import下你的这个模块 而后就能够用了。好比小猪随手写的一个简易模块:服务器

部分代码并发

这些均可以本身定制,这样你在写爬虫的时候就方便多了。dom

另外,小猪闲暇没事也会爬点小东西练练手,初学者能够也跟着 试试,相关脚本都丢到个人Gayhub上了,按需自取:ssh

github.com/coder-pig/R…


2.编写刷访问量脚本

Step 1:获取博客的全部连接

打开:blog.csdn.net/coder_pig?v… 滑动到底部,能够发现有这个东西,要作的就是拿到每一页的 url,而后处理页面拿到全部的文章连接都存起来,而后随手 点开第二页,发现url变成: blog.csdn.net/zpj77987844… 因此咱们只需拿到总共有多少页就能够了,而后自行拼接URL:

浏览器f12打开Elements,Ctrl+f搜 尾页,直接就定位到了

而后全局搜下这个papelist,发现也是惟一的,接下来好办 了,处理下href,拿到最后的页码:

接着就是看下每一个列表页的页面结构,获取全部的文章url, 而后写入到一个文件里了:

就选咱们刚刚打开的第二页吧,一样打开:Elements,随手 搜个:小猪浅谈Android屏幕适配,就能够定位到:

而后点结点,翻上去,不难找到:

一样,搜下article_list,一样是惟一的,拿到这个div,而后 获取class='link_title'span,而后拿到里面的a标签就能够了:

执行下这个方法,能够看到目录下生成了csdn_articles_file.txt 点开就能够看到咱们全部文章的url了:

第一步完成~

Step 2访问网页

这里就很是简单了,换ip,而后给文章发起请求,你连read() 方法都不用执行,另外,这里还能够添加计数,当返回码为 200的时候,说明是一次顺利的访问,计数+1,代码很简单:

Step 3:执行代码

这里很简单,先判断文章列表文件是否存在,不存在遍历, 而后加载文件里全部的数据到列表,接着While无限循环, 而后random随机取出一个访问便可!

运行后开始计数就说明成功了,打开本身的博客页面放着 过一会在儿再刷新看看访问量是否增长了就知道了:


3.把脚本丢到服务器上跑

本身的电脑总不可能24小时开着是吧,费电,好比我通常下班 就会关电脑,若是想你的脚本能够24小时不间断运行,能够丢 到服务器上,一百来块就能够买个普通的玩玩了,有兴趣自行 百度阿里云,腾讯云虚拟主机之类的。

通常是经过ssh命令连接到咱们的远程主机终端

ssh root@主机ip,而后输入下主机密码便可连接

而后你能够经过一些ftp工具把本身的脚本文件丢到 服务器上,而后ssh终端执行下python3 xxx.py就能够了。

可是有个问题是,若是你按了ctrl+c或者关闭了这个ssh终端 你的这个脚本就会中止!因此你须要之后台程序的方式执行 你的这个Python脚本,可使用nobup命令。 键入这样的命令:

nohup python3 -u xxx.py > xxx.out 2>&1 &
复制代码

解释下:

  • nohup 和 最后的& 包着的就是让命令在后台执行,好比你直接 写nohup python3 xxx.py &就能够了
  • > xxx.out 表明将输出信息输出到xxx.out日志文件中
  • 2>&1 将信息变成标准输出,把错误信息也输入到日志文件中 0表明stdin,1表明stdout,2表明stderr

这样执行后,会返回一个pid(进程id):

而后你能够经过tail命令跟踪日志输出:

tail -f xxx.out
复制代码

以为跑得差很少了想停掉程序运行,只需执行下述命令把进程 杀掉,好比kill -9 19267

kill -9 pid
复制代码

若是忘记了pid也没什么,能够经过下述命令找到:

ps -ef | grep python3
复制代码

而后kill掉就能够了。另外上面那个执行了8:28分钟的就是 我昨晚睡觉前运行的脚本,tail看一波日志文件:

怒刷31W访问量,这个就不说了...


4.Python3 ssl模块找不到

把脚本丢服务器上,python3执行的时候一直安装不了ssl模块, 真是莫名其妙,pip3 install ssl,死命就是报错,后面搜了 下网上的资料, 先执行下面的两个命令装点东西:

apt-get install openssl
apt-get libssl-dev
复制代码

装上后仍是不行,而后发现是要去改下python3文件夹里的 代码,而后从新make,cd到下面的路径,vim编辑Setup文件:

cd ../../usr/lib/python/Python-3.6.4/Modules 
vim Setup
复制代码

把对应这个部分的改为下述这个样子,而后esc,键入 :wq保存。

而后一次执行下述命令(若是最后名利提示权限不够,可在make前加-H)

cd ..
sudo ./configure
sudo make
sudo make install
复制代码

make完后,命令行键入python3,进入到python3 ide,import下ssl 没报错就说明安装成功了!


小结

本节学习了编写本身的模块,编写刷访问量脚本,以及如何把本身的 脚本丢到服务器上之后台程序的方式运行。

其实刷那么多的访问量又有什么用,写博客的初衷就是分享和记录 本身的学习历程,不知什么时候开始,咱们开始热衷于追求所谓的阅读量, 点赞数,评论数,而后各类标题党,鸡汤...如今大多数的人对于短平 快结果立竿见影的事情趋之若鹜,而对须要沉下心长时间积淀的事却 避之而惟恐不及,这可能就是浮躁吧。


本节源码下载

github.com/coder-pig/R…


来啊,Py交易啊

想加群一块儿学习Py的能够加下,智障机器人小Pig,验证信息里包含: PythonpythonpyPy加群交易屁眼 中的一个关键词便可经过;

验证经过后回复 加群 便可得到加群连接(不要把机器人玩坏了!!!)~~~ 欢迎各类像我同样的Py初学者,Py大神加入,一块儿愉快地交流学♂习,van♂转py。

相关文章
相关标签/搜索