python制作的网站例子_Python制作刷网页流量工具的代码实例

本文给大家分享的是一个使用python制作的,可以实现刷网页流量的小工具,并给大家附上了详细代码,有需要的小伙伴可以参考下

准备

必须环境:

Python3

开始

先实现一个简单的版本,直接上代码:import urllib.request

import urllib.error

#创建get方法

def get(url):

code=urllib.request.urlopen(url).code

return code

if __name__ == '__main__':

#设置一些基本属性

url = "http://shua.jb51.net"

user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"

headers = {'User-Agent':user_agent}

req = urllib.request.Request(url, headers=headers)

#记录次数

i = 1

while 1:

code = get(url)

print('访问:'+str(code))

i = i+1

简单粗暴,刷的只是 pv,ip 没变,容易被搜索引擎发现,下面我们来改进一下

增加代理功能

给 get 方法添加以下代码:random_proxy = random.choice(proxies)

proxy_support = urllib.request.ProxyHandler({"http":random_proxy})

opener = urllib.request.build_opener(proxy_support)

urllib.request.install_opener(opener)

修改一下主方法:if __name__ == '__main__':

url = "http://shua.jb51.net"

#添加代理列表,可以自行去百度获取

proxies = ["124.88.67.22:80","124.88.67.82:80","124.88.67.81:80","124.88.67.31:80","124.88.67.19:80","58.23.16.240:80"]

user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"

headers = {'User-Agent':user_agent}

req = urllib.request.Request(url, headers=headers)

i = 1

while 1:

#添加参数

code = get(url,proxies)

print('第'+str(i)+'次代理访问:'+str(code))

i = i+1

这样差不多了,不过有个 bug ,如果页面打不开了或者代理失效了,程序就自动结束了,接下来我们添加异常处理功能

异常处理

定义 mail 方法 ,用来发邮件提醒def mail(txt):

_user = "你的账号"

_pwd = "你的密码"

_to = "收件账号"

msg = MIMEText(txt, 'plain', 'utf-8')

#标题

msg["Subject"] = "代理失效!"

msg["From"] = _user

msg["To"] = _to

try:

#这里我用的qq邮箱

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

s.login(_user, _pwd)

s.sendmail(_user, _to, msg.as_string())

s.quit()

print("Success!")

except smtplib.SMTPException as e:

print("Falied,%s" % e)

然后我们修改一下主方法:if __name__ == '__main__':

url = "http://shua.jb51.net"

proxies = ["124.88.67.22:80","124.88.67.82:80","124.88.67.81:80","124.88.67.31:80","124.88.67.19:80","58.23.16.240:80"]

user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"

headers = {'User-Agent':user_agent}

req = urllib.request.Request(url, headers=headers)

i = 1

while 1:

try:

code = get(url,proxies)

print('第'+str(i)+'次代理访问:'+str(code))

i = i+1

except urllib.error.HTTPError as e:

print(e.code)

#添加mail方法

mail(e.code)

except urllib.error.URLError as err:

print(err.reason)

#添加mail方法

mail(err.reason)

完成!

结语

代码只有短短的 50 行,程序还可以改进:

例如:代理列表自动获取,添加界面,扩展下多线程等等

最后给再给大家分享一个其他小伙伴的作品import urllib2

import timeit

import thread

import time

i = 0

mylock = thread.allocate_lock()

def test(no,r):

global i

url = 'http://blog.csdn.net'

for j in range(1,r):

req=urllib2.Request(url)

req.add_header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")

file = urllib2.urlopen(req)

print file.getcode();

mylock.acquire()

i+=1

mylock.release()

print i;

thread.exit_thread()

def fast():

thread.start_new_thread(test,(1,50))

thread.start_new_thread(test,(2,50))

fast()

time.sleep(15)

经测试,超过两个线程以上服务器就会出现503错误,所以2个线程刚好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值