python通过代理刷网页点击量

更新异常处理情况

@time 2013-0803 更新循环里计数问题和随机等待时间问题

#!/usr/bin/python
#-*- coding:utf-8 -*-
'''
此脚本主要实现网页的点击量,除了实现次功能点外,还有三个知识点:
1、随机获取代理ip,通过代理ip访问指定站点,其目的是防止ip被封
2、访问一个页面后,随机休息几秒,再访问,其目的是防止网站前面有4-7层过滤设备拦截
3、修改http的user agent字段,有些网站和4-7层设备会检查
Created on 2013-7-14
@author: QQ136354553
'''

import urllib2,re,time,urllib,proxyIP,random,user_agents

def getHtml(url):
    proxy_ip =random.choice(proxyIP.proxy_list) #在proxy_list中随机取一个ip
    print proxy_ip    
    proxy_support = urllib2.ProxyHandler(proxy_ip)
    opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
    urllib2.install_opener(opener)
    request = urllib2.Request(url)
    user_agent = random.choice(user_agents.user_agents)  #在user_agents中随机取一个做user_agent
    request.add_header('User-Agent',user_agent) #修改user-Agent字段
    print user_agent
    html = urllib2.urlopen(request).read()
    return proxy_ip
urls =
['http://www.25shiyan.com/?fromuid=16','http://www.25shiyan.com/forum.php?mod=viewthread&tid=37840&extra=page%3D1','http://www.25shiyan.com/forum.php?mod=viewthread&tid=36786&extra=page%3D1']
count_True,count_False,count= 0,0,0
while True:
    for url in urls:
        count +=1
        try:
            proxy_ip=getHtml(url)            
        except urllib2.URLError:
            print 'URLError! The bad proxy is %s' %proxy_ip
            count_False += 1
        except urllib2.HTTPError:
            print 'HTTPError! The bad proxy is %s' %proxy_ip
            count_False += 1
        except:
             print 'Unknown Errors! The bad proxy is %s ' %proxy_ip 
             count_False += 1
        randomTime = random.uniform(1,3) #取1-10之间的随机浮点数
        time.sleep(randomTime) #随机等待时间
        print '%d Eroors,%d ok,总数 %d' %(count_False,count - count_False,count)

######################

上面引入模块中:proxyIP、user_agents内容如下:

######################

proxyIP.py

#!/usr/bin/python
#-*- conding:utf-8 -*-

proxy_list = [
               {'http':"http://59.53.67.215:80"},
              {'http':"http://60.161.14.77:8001"},
              {'http':"http://61.144.14.68:80"},
              {'http':"http://61.144.68.180:9999"},
              {'http':"http://61.164.108.84:8844"},
              {'http':"http://61.166.55.153:11808"}
               ]

###########################

user_agents.py

#!/usr/bin/python
#-*- coding:utf-8 -*-

import random
user_agents = [
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9'
]

####################################

1、代理ip目前只是静态列表,想做成动态获取的,目前还没实现,后续考虑

2、urls没有处理好,最初是想从一个主战点,抓取子链接的,现在还没有实现

python通过代理刷网页点击量的更多相关文章

  1. C#爬虫使用代理刷csdn文章浏览量

    昨天写了一篇关于“c#批量抓取免费代理并验证有效性”的文章,接着昨天的目标继续完成吧,最终实现的目的就是刷新csdn文章的浏览量(实际上很简单,之前博客园的文章也是可以使用代理ip来刷的,后来不行了) ...

  2. js处理文章详情页点击量统计

    具体需求:在文章管理系统中,需要统计文章详情页面的点击量,来体现该文章是否受用户欢迎,方便管理员调整日后编辑新文章时的内容方向. 解决方案:设置有过期时间的cookie 我们在访问文章详情页面时,拿到 ...

  3. Python一日一练05----怒刷点击量

    功能 自己主动获取CSDN文章列表,并对每篇文章添加点击量. 源代码 import urllib.request import re import time import random from bs ...

  4. Python 自动刷博客浏览量

    哈哈,今天的话题有点那什么了哈.咱们应该秉承学习技术的角度来看,那么就开始今天的话题吧. 思路来源 今天很偶然的一个机会,听到别人在谈论现在的"刷量"行为,于是就激发了我的好奇心. ...

  5. 分享一个刷网页PV的python小脚本

    下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...

  6. python分布式抓取网页

    呵呵,前两节好像和python没多大关系..这节完全是贴代码, 这是我第一次写python,很多地方比较乱,主要就看看逻辑流程吧. 对于编码格式确实搞得我头大..取下来页面不知道是什么编码,所以先找c ...

  7. 利用python完成大学刷课(从0到完成的思路)

    i春秋作家:tllm 原文来自:利用python完成大学刷课(从0到完成的思路) 最近刚刚开学,学校总是有很多让人无语的课要修,还不能不修.然后我想写一个自动修课的脚本.大佬们不要笑我 是边面向百度学 ...

  8. 老李性能测试分享:可以没事代理刷榜赚外快了,poptest这是让你快速致富啊

    老李性能测试分享:可以没事代理刷榜赚外快了,poptest这是让你快速致富啊   最近学员不断面试,不时听到令人惊喜的消息,类似应届专科毕业生获得7k月薪,小美女应聘月薪11k等等,看到学员开心的笑容 ...

  9. 【sem竞价】点击量较多、咨询少怎么解决?

    点击量较多咨询少可能这种情况对于竞价技术专员来说比较常见的现象之一,在搜客大伟看来主要取决于两方面因素:一方面是外界环境因素影响:另一方面也就是我们下面主要介绍的sem竞价推广账户内部因素. 如下图, ...

随机推荐

  1. 2份能用的log4j.xml

    1 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration ...

  2. 写自己的WPF样式 - 窗体

    初试WPF样式,感觉还不错.上篇写完了按钮的样式下面写窗体,废话不多说直接上代码: (1)定义一个窗体样式"MyWpfWindow" <Style x:Key="M ...

  3. Clipboard.js : 移动端浏览器实现网页内容复制

    .bl { padding: 5px 10px; border-left: 3px solid #009a61; background: #f6f6f6; color: #555; font-size ...

  4. swift实现ios类似微信输入框跟随键盘弹出的效果

    封面(图文无关) 为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会跟随键盘一起向下收回,二者完全无缝连 ...

  5. MySQL批量更新死锁案例分析--转载

    问题描述 在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常,如下: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackE ...

  6. [转] 在 Linux 中怎样使用cp命令合并目录树

    PS:通过cp -r --link a/* b/* merged 硬链接不需要复制 怎样将两个布局相似的目录树合并成一个新的目录树?为理解该问题让我们思考下面的例子. 假设 dir1 和 dir2 目 ...

  7. 表达式求值 (栈) 用C++实现

    #include <cstdio> #include <cstdlib> #include <cmath> #include <stack> #incl ...

  8. 大数据笔记04:大数据之Hadoop的HDFS(基本概念)

    1.HDFS是什么? Hadoop分布式文件系统(HDFS),被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点. 2.HDFS ...

  9. 补间动画 Interpolator 简介 示例

    简介 补间动画的原理: 每次绘制视图时View所在的[ViewGroup]中的drawChild函数获取该View的Animation的值,然后调用canvas.concat (transformTo ...

  10. css07家用电器分类

    1.创建一个html页面 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&q ...