资讯专栏INFORMATION COLUMN

Python 实现刷网页流量工具,并添加代理,报错处理功能

Shimmer / 827人阅读

摘要:个人博客凌霄的博客准备必须环境开始先实现一个简单的版本,直接上代码创建方法设置一些基本属性记录次数访问简单粗暴,刷的只是没变,容易被搜索引擎发现,下面我们来改进一下增加代理功能给方法添加以下代码修改一下主方法添加代理列表,可以自行去百度获

</>复制代码

  1. 个人博客:凌霄的博客

准备

必须环境:

Python3

开始

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

</>复制代码

  1. import urllib.request
  2. import urllib.error
  3. #创建get方法
  4. def get(url):
  5. code=urllib.request.urlopen(url).code
  6. return code
  7. if __name__ == "__main__":
  8. #设置一些基本属性
  9. url = "http://lx.nextdev.cn"
  10. 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"
  11. headers = {"User-Agent":user_agent}
  12. req = urllib.request.Request(url, headers=headers)
  13. #记录次数
  14. i = 1
  15. while 1:
  16. code = get(url)
  17. print("访问:"+str(code))
  18. i = i+1

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

增加代理功能

get 方法添加以下代码:

</>复制代码

  1. random_proxy = random.choice(proxies)
  2. proxy_support = urllib.request.ProxyHandler({"http":random_proxy})
  3. opener = urllib.request.build_opener(proxy_support)
  4. urllib.request.install_opener(opener)

修改一下主方法:

</>复制代码

  1. if __name__ == "__main__":
  2. url = "http://lx.nextdev.cn"
  3. #添加代理列表,可以自行去百度获取
  4. 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"]
  5. 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"
  6. headers = {"User-Agent":user_agent}
  7. req = urllib.request.Request(url, headers=headers)
  8. i = 1
  9. while 1:
  10. #添加参数
  11. code = get(url,proxies)
  12. print("第"+str(i)+"次代理访问:"+str(code))
  13. i = i+1

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

异常处理

定义 mail 方法 ,用来发邮件提醒

</>复制代码

  1. def mail(txt):
  2. _user = "你的账号"
  3. _pwd = "你的密码"
  4. _to = "收件账号"
  5. msg = MIMEText(txt, "plain", "utf-8")
  6. #标题
  7. msg["Subject"] = "代理失效!"
  8. msg["From"] = _user
  9. msg["To"] = _to
  10. try:
  11. #这里我用的qq邮箱
  12. s = smtplib.SMTP_SSL("smtp.qq.com", 465)
  13. s.login(_user, _pwd)
  14. s.sendmail(_user, _to, msg.as_string())
  15. s.quit()
  16. print("Success!")
  17. except smtplib.SMTPException as e:
  18. print("Falied,%s" % e)

然后我们修改一下主方法:

</>复制代码

  1. if __name__ == "__main__":
  2. url = "http://lx.nextdev.cn"
  3. 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"]
  4. 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"
  5. headers = {"User-Agent":user_agent}
  6. req = urllib.request.Request(url, headers=headers)
  7. i = 1
  8. while 1:
  9. try:
  10. code = get(url,proxies)
  11. print("第"+str(i)+"次代理访问:"+str(code))
  12. i = i+1
  13. except urllib.error.HTTPError as e:
  14. print(e.code)
  15. #添加mail方法
  16. mail(e.code)
  17. except urllib.error.URLError as err:
  18. print(err.reason)
  19. #添加mail方法
  20. mail(err.reason)
完成! 结语

代码只有短短的 50 行,程序还可以改进:
例如:代理列表自动获取,添加界面

</>复制代码

  1. 欢迎评论

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38613.html

相关文章

  • 利用 NGINX 最大化 Python 性能,第二部分:负载均衡和监控

    摘要:现有的服务器和应用程序服务器相结合并在一个冒泡中运行,无法直接接触网络流量,由反向代理服务器提出填鸭式请求。赋予高可用性让你的反向代理服务器镜像到在线备份,同时拥有备用的应用程序服务器,让你的站点高度可用。 【编者按】本文主要介绍 NGINX 的主要功能以及如何通过 Nginx 优化 Python 应用性能。本文系国内 ITOM 管理平台 OneAPM 编译呈现。 本文上一篇系: 利用...

    zhangrxiang 评论0 收藏0
  • 利用 NGINX 最大化 Python 性能,第二部分:负载均衡和监控

    摘要:现有的服务器和应用程序服务器相结合并在一个冒泡中运行,无法直接接触网络流量,由反向代理服务器提出填鸭式请求。赋予高可用性让你的反向代理服务器镜像到在线备份,同时拥有备用的应用程序服务器,让你的站点高度可用。 【编者按】本文主要介绍 NGINX 的主要功能以及如何通过 Nginx 优化 Python 应用性能。本文系国内 ITOM 管理平台 OneAPM 编译呈现。 本文上一篇系: 利用...

    Snailclimb 评论0 收藏0
  • Python爬虫学习路线

    摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...

    liaoyg8023 评论0 收藏0
  • 利用 NGINX 最大化 Python 性能,第一部分:Web 服务和缓存

    摘要:无论是将其用作的服务器反向代理服务器负载均衡器,还是同时使用以上三种功能,和都能带来很大好处。再就是下篇文章会介绍如何把和当作反向代理服务器和多个应用程序服务器的负载均衡器。而使用将会有助于解决这一问题。 【编者按】本文主要介绍 nginx 的主要功能以及如何通过 NGINX 优化 Python 应用性能。本文系国内 ITOM 管理平台 OneAPM 编译呈现。 Python 的著名之...

    1treeS 评论0 收藏0
  • 利用 NGINX 最大化 Python 性能,第一部分:Web 服务和缓存

    摘要:无论是将其用作的服务器反向代理服务器负载均衡器,还是同时使用以上三种功能,和都能带来很大好处。再就是下篇文章会介绍如何把和当作反向代理服务器和多个应用程序服务器的负载均衡器。而使用将会有助于解决这一问题。 【编者按】本文主要介绍 nginx 的主要功能以及如何通过 NGINX 优化 Python 应用性能。本文系国内 ITOM 管理平台 OneAPM 编译呈现。 Python 的著名之...

    v1 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<