Python伪装浏览器刷博客浏览量

不好意思,不知道为什么会有这样的念头,就是看着别人写的博文浏览量过千万,而自己的只能过百。心有不甘。于是。。。

怒刷了http request的一些知识。

1、HTTP请求方式

如下表:

GET

向Web服务器请求一个文件

POST

向Web服务器发送数据让Web服务器进行处理

PUT

向Web服务器发送数据并存储在Web服务器内部

HEAD

检查一个对象是否存在

DELETE

从Web服务器上删除一个文件

CONNECT

对通道提供支持

TRACE

跟踪到服务器的路径

OPTIONS

查询Web服务器的性能

 

说明:

主要使用到“GET”和“POST”。

2、伪装成浏览器

       HTTP是基于请求和应答机制的--客户端提出请求,服务端提供应答。urllib2用一个Request对象来映射你提出的HTTP请求,在它最简单的使用形式中你将用你要请求的

地址创建一个Request对象,通过调用urlopen并传入Request对象,将返回一个相关请求response对象,这个应答对象如同一个文件对象,所以你可以在Response中调用.read()。

      但是但是但是。。。。

      在HTTP请求时,允许你做额外的两件事。首先是你能够发送data表单数据,其次你能够传送额外的关于数据或发送本身的信息("metadata")到服务器,此数据作为HTTP的"headers"来发送。接下来让我们看看这些如何发送的吧。

      浏览器确认自己身份是通过User-Agent头,当你创建了一个请求对象,你可以给他一个包含头数据的字典。下面的例子发送跟上面一样的内容,但把自身

模拟成Internet Explorer。

        
import urllib 
import urllib2 
url = 'http://www.pythontab.com' 
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' 
  
values = {'name' : 'Michael Foord', 
          'location' : 'pythontab', 
          'language' : 'Python' } 
headers = { 'User-Agent' : user_agent } 
data = urllib.urlencode(values) 
req = urllib2.Request(url, data, headers) 
response = urllib2.urlopen(req) 
the_page = response.read()

3、话不多说。来一个栗子

要刷浏览量的我的博客的url:http://blog.csdn.net/blog_liuliang/article/details/51834137

#!/usr/bin/env python  
# -*- coding:utf-8 -*-  
import urllib    # Python中的cURL库  
import urllib2    # Python中的cURL库  
import time    # 时间函数库,包含休眠函数sleep()  
url = 'http://blog.csdn.net/blog_liuliang/article/details/51834137'    # 希望刷阅读量的文章的URL  
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'    # 伪装成Chrome浏览器  
refererData = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=python%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%BB%83%E4%B9%A0&oq=urllib2.request%20%E5%8F%82%E6%95%B0&rsv_pq=fd0f38e40000db8b&rsv_t=6ec2HIbgWthuw3DWeXZSp8H8sFOXlNADvNuj1cCIHdsA6JxxgKiMJ3EWA1cwZTGowTpL&rqlang=cn&rsv_enter=0&inputT=18403&rsv_sug3=131&rsv_sug1=70&rsv_sug7=101&rsv_sug4=19841'    # 伪装成是从baidu.com搜索到的文章  
data = ''    # 将GET方法中待发送的数据设置为空  
headers = {'User-Agent' : user_agent, 'Referer' : refererData}    # 构造GET方法中的Header  
count = 0    # 初始化计数器  
request = urllib2.Request(url, data, headers)    # 组装GET方法的请求  
while 1:    # 一旦开刷就停不下来  
    rec = urllib2.urlopen(request)    # 发送GET请求,获取博客文章页面资源  
    page = rec.read()    # 读取页面内容到内存中的变量,这句代码可以不要  
    count += 1    # 计数器加1  
    print count    # 打印当前循环次数  
    if count % 6:    # 每6次访问为1个循环,其中5次访问等待时间为31秒,另1次为61秒  
        time.sleep(31)    # 为每次页面访问设置等待时间是必须的,过于频繁的访问会让服务器发现刷阅读量的猥琐行为并停止累计阅读次数  
    else:  
        time.sleep(61)  
print page    # 打印页面信息,这句代码永远不会执行  

Python伪装浏览器刷博客浏览量_第1张图片


慢慢刷,不要慌。

你可能感兴趣的:(python,学习)