通过代理刷网页点击量

#!/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,random,user_agents
PROXYIPURL = ‘http://www.goodips.com/?ip=&port=&dengji=&adr=%E7%94%B5%E4%BF%A1&checktime=&sleep=1%E7%A7%92%E5%86%85&cunhuo=48%E5%B0%8F%E6%97%B6%E4%BB%A5%E4%B8%8A&px=‘
#url = ‘http://blog.csdn.net/chenfei_5201213/article/details/6868634‘
class getProxyIP:
#   从网页抓去代理ip ,并整理格式
    def getProxyHtml(self):
#        抓去代理 ip页面的代码
        page = urllib.urlopen(PROXYIPURL)
        html = page.read()
        #print html
        return html

    def ipPortRe(self):
#       从页面代码中取出代理 ip和端口
        html = self.getProxyHtml()
        #ip_re = re.compile(r‘(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))‘)
        ip_re = re.compile(r‘(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+\n.+>(\d{1,5})<‘)
        ip_port = re.findall(ip_re,html)
        return ip_port

    def proxyIP(self):
#       格式化输出代理 ip和端口
        ip_port = self.ipPortRe()
#       将代理 ip整理成[‘221.238.28.158:8081‘, ‘183.62.62.188:9999‘]格式
        proxyIP = []
        for i in range(0,len(ip_port)):
            proxyIP.append(‘:‘.join(ip_port[i]))   

#       将代理 ip整理成[{‘http‘: ‘http://221.238.28.158:8081‘}, {‘http‘: ‘http://183.62.62.188:9999‘}]格式
        proxy_list = []
        for i in range(0,len(proxyIP)):
            a0 = ‘http://%s‘%proxyIP[i]
            a1 = {‘http‘:‘%s‘%a0}
            proxy_list.append(a1)
        return proxy_list

def getHtml(url):
    p = getProxyIP()
    proxy_list = p.proxyIP()
    proxy_ip =random.choice(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()
    print proxy_ip
    return proxy_ip

URLS = [‘http://www.x‘x‘xxw.net/study.asp?vip=‘,
        ‘http://www.x‘x‘x‘x‘x‘x.com/?fromuid=16‘,
        ]

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)

 1 #!/usr/bin/python
 2 #-*- coding:utf-8 -*-
 3 ‘‘‘
 4 Created on 2013-7-14
 5
 6 @author: Administrator
 7 ‘‘‘
 8
 9 user_agents = [
10     ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11‘,
11     ‘Opera/9.25 (Windows NT 5.1; U; en)‘,
12     ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)‘,
13     ‘Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)‘,
14     ‘Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12‘,
15     ‘Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9‘
16 ]

时间: 2024-11-13 04:35:44

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

python通过代理刷网页点击量

python通过代理刷网页点击量 更新异常处理情况 @time 2013-0803 更新循环里计数问题和随机等待时间问题 #!/usr/bin/python #-*- coding:utf-8 -*- ''' 此脚本主要实现网页的点击量,除了实现次功能点外,还有三个知识点: 1.随机获取代理ip,通过代理ip访问指定站点,其目的是防止ip被封 2.访问一个页面后,随机休息几秒,再访问,其目的是防止网站前面有4-7层过滤设备拦截 3.修改http的user agent字段,有些网站和4-7层设备会

JavaWeb-Servlet技术的监听器-解析与实例-网站在线用户信息与网页点击量

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 在Web项目中,我们对下面这几个监听器必须熟练的使用,它们的作用真的很大.熟练的使用后,可以使我们少绕弯路,少写很多代码. 事件源 监听对像的创建和销毁 监听对像上属性的添加和删除 HttpSession HttpSessionListener HttpSessionAttributeListener - HttpSessionEvent ServletRequest Servl

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

功能 自己主动获取CSDN文章列表,并对每篇文章添加点击量. 源代码 import urllib.request import re import time import random from bs4 import BeautifulSoup p = re.compile('/a359680405/article/details/........') #自己的博客主页 url = "http://blog.csdn.net/a359680405" #使用build_opener()是

Python一日一练06----怒刷点击量pyqt5版

功能 输入博主用户名,增加博主点击量 软件截图 部分源码 # coding=utf-8 __author__ = 'a359680405' from PyQt5 import QtWidgets from PyQt5.QtCore import QThread from PyQt5.QtCore import pyqtSignal from visitspage.UI.MainForm import Ui_MainForm from visitspage.UI.newForm import Ui

Python 自动刷博客浏览量

哈哈,今天的话题有点那什么了哈.咱们应该秉承学习技术的角度来看,那么就开始今天的话题吧. 思路来源 今天很偶然的一个机会,听到别人在谈论现在的"刷量"行为,于是就激发了我的好奇心.然后看了下requests模块正好对我有用,就写了一个简单的测试用例.神奇的发现这一招竟然是管用的.那还等什么,开刷咯. 前奏 思路很简单,就是一个发送请求的实现,就可以了.代码如下: headers = { 'referer':'http://blog.csdn.net/', 'User-Agent':'M

Python爬取新闻网标题、日期、点击量

最近接触Python爬虫,以爬取学校新闻网新闻标题.日期.点击量为例,记录一下工作进度 目前,感觉Python爬虫的过程无非两步: Step1.获取网页url(利用Python库函数import urllib2) Step2.利用正则表达式对html中的字符串进行匹配.查找等操作 自我感觉sublime text2编辑器真心好用,部署Python后不会像WingIDE.notepad++那样存在那么多头疼的小问题,推荐使用 学校新闻网:西南交通大学新闻网--交大新闻 # -*- coding:

获取网易全站热点前十及其点击量

import requests from bs4 import BeautifulSoup import bs4 ulist=[]#定义一个空列表 def getHTMLText(url): try: headers = { 'User-Agent': '5498'} r = requests.get(url, timeout=30, headers=headers)#输入获取的url信息,输出是url的内容 r.raise_for_status() #用raise_for_status产生异常

redis实现点击量/浏览量

java+redis实现高性能新闻点击量更新 1.redis简单介绍.它用来做高性能数据存取 是极好的. 2.实例:新闻点击量. 1)每次刷新,我们并不一定要往数据库里面立即更新数据 2)可以在redis里面做key-value存储 3)设置一个阀值,当用户刷新到一定数量时才更新到数据库中 3.本课时在windows下部署. 4.linux部署 后面也会讲到 课程地址 :http://edu.51cto.com/index.php?do=lesson&id=42104 -------------

IOS之UI--自定义按钮实现代理监听点击事件

前言: Objective-C提供的按钮监听事件的方法是 不含参数的监听方法 [button实例对象 addTarget:self action:@selector(func) forControlEvents:UIControlEventTouchUpInside]; 含参数的监听方法 [button实例对象 addTarget:self action:@selector(func:) forControlEvents:UIControlEventTouchUpInside]; 下面通过代理的