ホームページ  >  記事  >  バックエンド開発  >  Python を使用してページビューを増やすためのチュートリアルの例を共有します

Python を使用してページビューを増やすためのチュートリアルの例を共有します

零下一度
零下一度オリジナル
2017-06-16 10:27:183361ブラウズ

この記事では、主にブログビューを自動でブラッシングするための Python のサンプルコードを紹介します。編集者が非常に優れていると考えたので、参考として共有します。編集者をフォローして見てみましょう

アイデアのソース

今日偶然、他の人が現在の「ボリュームブラッシング」動作について話しているのを聞いて、私の好奇心を呼び起こしました。次に、requests モジュールを調べたところ、たまたま役に立ったので、簡単なテスト ケースを作成しました。奇跡的に、私はこのトリックが実際に機能することを発見しました。それで、何を待っていますか?

Prelude

このアイデアは非常にシンプルで、リクエストを送信する実装だけです。コードは次のとおりです:


headers = {
  'referer':'www.php.cn',
  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}

def getHtml(url,headers):
  req = urllib2.Request(url,headers=headers)
  page = urllib2.urlopen(req)
  html = page.read()
  return html

ターゲット URL とヘッダーを手動で追加するだけです。当然、私自身のものを使用してテストします。

コードを実行してみたところ、確かに閲覧数が増加しました。

低成長

そのような計画は実現可能であるということは、その考えは正しいということになります。したがって、自然に loop を書こうと考えます。これにより、閲覧数が大幅に増加する可能性があるのではないでしょうか?
はい、まさにそれが私がやったことです。コードは以下の通りです:

i= 0
while i < 10:
  url = &#39;jb51.net/marksinoberg/article/details/51501377&#39;
  getHtml(url,headers)

初めは明らかにブログ数が増えているのがわかります(^^)ふふふ…成果が出始めました。しかし、良い時期は長くは続かず、閲覧数が10倍に増加したことがわかりました。ただ、ははは。

その後、追加できません。おそらく、サーバーがアクセスに特定の制限を課しているためです。そうでない場合は、追加できるはずです。

落とし穴への対処法を考えよう

「上からの政策、下からの対策」という言葉があるように、当然それに縛られるわけにもいかず、私のIPはこうだったのだろうと推測しました。記録された。その後、訪問回数にいくつかの制限が追加されました。

私の解決策:

  1. アクセス用のプロキシIP: ただし、サーバーがないことを考慮すると、プロキシIPにはアクセスできません。

  2. IP の変更: このような場合は、アクセス用の IP を変更する方法を見つけます。では、IP を変更するにはどうすればよいでしょうか? (今考えると後悔しています。当時はコンピュータネットワークの授業に注目していなかったので、IPスプーフィングの勉強が足りませんでした。そうしないと今では使えないでしょう)。しかし、すべての道はローマに通ず、私には他の道もあります。次のように:

C:UsersAdministrator>ipconfig /release

Windows IP 構成

ローカル エリア接続で操作を実行できません。メディアが切断されました。

ワイヤレス ネットワーク接続:

リンクローカル IPv6 アドレス。 . . . . . . . . . . ix. . . . . . . . . . . . . . . . . . . . . : :359d:741

。 . : 255.255.255.0
. . . . . . . . . . . 。 . . . . . . . . . . . 。 . . . . . . . . . . . . . . . . . . . . . . :
. . . . . . . . . . . . . . . . . 。 . . . . . . . . . B71-BD79 -E48233EEC9BE}:

メディアのステータス。

接続が切断されました。 }:

メディアのステータス. . . . . . . . . . . . . . . . . . . . . . . . . . . 接続が切断されました。 : メディアが切断されました。 :

dl

接続が切断されました。 DNSサフィックス。

隧道适配器 isatap.{6F7F27ED-942E-4EFB-ACF2-A4E8793B161D}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

C:\Users\Administrator>ipconfig /renew

Windows IP 配置

不能在 本地连接 上执行任何操作,它已断开媒体连接。

无线局域网适配器 无线网络连接:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::1d9f:d97b:fd16:1f6f%12
   IPv4 地址 . . . . . . . . . . . . : 192.168.58.70
   子网掩码  . . . . . . . . . . . . : 255.255.252.0
   默认网关. . . . . . . . . . . . . : 192.168.56.1

以太网适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . : OurEDA.cn

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::359d:e81d:741:f257%14
   IPv4 地址 . . . . . . . . . . . . : 192.168.229.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::94b1:d10f:b68:101d%15
   IPv4 地址 . . . . . . . . . . . . : 192.168.244.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VirtualBox Host-Only Network:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::a5eb:545c:7d89:9451%16
   IPv4 地址 . . . . . . . . . . . . : 192.168.56.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

隧道适配器 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{1860C94E-1007-4418-9A26-7D8AA8F06E15}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.OurEDA.cn:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.dlut.edu.cn:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{6F7F27ED-942E-4EFB-ACF2-A4E8793B161D}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

是的,想必大家都看到了。核心的两个命令就是


// 更改路由表的配置
ipconfig / release // 释放网络,
ipconfig /renew  // 重新分配IP

这样基本上对于改变自己的IP是有点效果的。尤其是对局域网用户而言。

所以,我只需要在Python代码中调用系统的cmd命令,就可以动态的改变自己的IP了。也就达成了我的需求了

难题

虽然IP的问题解决了,但是这样刷的话,还是太慢。因为路由表的更新时需要时间的。而这和代码运行的速度比起来,真的是太慢太慢了。而且每次只能刷出十个浏览量,额。确实是比较的尴尬啊。费了这么大的劲,才刷了十个浏览量。怎么解决这个问题呢?

我其实也没有真正的解决这个问题,但是我发现这个限制也是不特别的强,因为我中途吃了个饭,回来的时候就发现原来的IP又可以刷了。大概45分钟左右的间隔吧!这是个突破点。
源码

其实思路很简单,就是想方设法的针对问题解决问题。不管对方的系统多么的坚固,也不可能是天衣无缝,总会有一种解决的办法的。下面是代码。


# coding:utf-8

#  author = &#39;Mark sinoberg&#39;
#  date = &#39;2016/5/26&#39;
#  Desc = 测试测试 刷新自己的博客的浏览量

import urllib2,re
from bs4 import BeautifulSoup

def getHtml(url,headers):
  req = urllib2.Request(url,headers=headers)
  page = urllib2.urlopen(req)
  html = page.read()
  return html

def parse(data):
  content = BeautifulSoup(data,&#39;lxml&#39;)
  return content

def getReadNums(data,st):
  reg = re.compile(st)
  return re.findall(reg,data)

url = &#39;http://jb51.net/marksinoberg/article/details/51493318&#39;
headers = {
  &#39;referer&#39;:&#39;http://jb51.net/&#39;,
  &#39;User-Agent&#39;:&#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36&#39;
}
i = 0
while i<24:
  html = getHtml(url,headers)
  content = parse(html)
  result = content.find_all(&#39;span&#39;,class_=&#39;link_view&#39;)
  print result[0].get_text()
  i = i +1

代码运行结果:

D:\Software\Python2\python.exe E:/Code/Python/MyTestSet/ulib2/AddWatcher.py
94人阅读
95人阅读
96人阅读
97人阅读
98人阅读
99人阅读
100人阅读
101人阅读
102人阅读
103人阅读
104人阅读
105人阅读
106人阅读
107人阅读
108人阅读
109人阅读
110人阅读
111人阅读
112人阅读
113人阅读
114人阅读
115人阅读
115人阅读
115人阅读

Process finished with exit code 0

比较好的地方就是使用了BeautifulSoup抓取了特定位置的数据,这里是对浏览量的抓取。从上面的结果也可以看出,一个IP抓取的数据量是有限制的,一般来说是10~30个,这里貌似是22次访问。

展望

其实我是可以做到一次运行多次刷新的效果的,但是这样做不是特别的正派,所以我就说一下自己的思路吧。

  1. 結果を判断します(結果を表示)。 2 つの連続した結果が一致した場合、Python を起動し、cmd コマンドを実行して IP を更新します。しかし、これは時間のかかる操作なので、スレッドに入れることができます

  2. 次に、独自のブログ リスト インターフェイスを取得して、すべてのブログ投稿を取得します。もちろん、ここではシミュレートされたログインが使用されていることは明らかです。次に各ブログのボリュームをブラッシュアップします。これで問題が根本的に解決されるわけではありませんが、少しでも積み重なると良い効果が得られます。

  3. ボリュームを定期的に更新するスレッドを作成し、XX 回ごとに更新します。最終的には、1 つの記事に何百ものアクセスが集まる可能性があります。 (試してないので分かりません)

以上がPython を使用してページビューを増やすためのチュートリアルの例を共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。