Python库之玩转Selenium

简介: 哈哈,帅哥出场怎么没有一点掌声呢,小姐姐小哥哥噪起来,let's cheer up,打起精神开始学习咯~本周我们要分享的是什么呢?来说说网站的浏览量吧,毕竟咱们做网站,写博客,肯定是希望越来越多的人能看到你自己写的东西啊,这样就可以狠狠的在面试官面前装个逼了,我可是访问量上百万的博主啊,那么如何使你的网站访问量噌噌的往上涨呢?除了你本身博客的质量和你强大的粉丝团以外,小编在教你一个黑科技,用Python来刷浏览量.

哈哈,帅哥出场怎么没有一点掌声呢,小姐姐小哥哥噪起来,let's cheer up,打起精神开始学习咯~本周我们要分享的是什么呢?来说说网站的浏览量吧,毕竟咱们做网站,写博客,肯定是希望越来越多的人能看到你自己写的东西啊,这样就可以狠狠的在面试官面前装个逼了,我可是访问量上百万的博主啊,那么如何使你的网站访问量噌噌的往上涨呢?除了你本身博客的质量和你强大的粉丝团以外,小编在教你一个黑科技,用Python来刷浏览量.


在这一部分,我会分五部分来说:


  • 网站流量的计算及区别介绍
  • 如何刷网站流量(扯一点seo的知识)
  • 应用的安装(所有软件安装地址请大家在我的博客查看,自行百度搜索"石璞东"进行查看)
  •    a. Python
  •    b.webdriver的安装

           c.selenium的安装

  • 举个例子
  • 思路提供

ok,话不多说,干起来吧~


一、网站流量的计算及区别介绍


  • 浏览量(page view): 用户每次打开一个网站页面就被记录一次.用户多次打开同一页面,浏览量累计.
  • 访客数(user view): 一天之内网站的独立访客数(以cookie为依据),一天之内同一访客多次访问同一网站只计算为1个访客.
  • 访问次数: 记录所有访客1天内访问了多少次我的网站,相同的访客有可能多次访问我的网站.
  • IP数: 一天之内访问网站的独立IP
  • 新访客数: 一天的独立访客中,历史第一次访问网站的访客数.
  • 新访客比率: 新访客数/访客数
  • 跳出率: 只浏览了一个页面便离开了网站的访问次数占总的访问次数的百分比
  • 平均访问时长: 访客在一次访问中,平均打开网站的时长.即每次访问中,从打开第一个页面到关闭最后一个页面的平均时间.
  • 转化次数: 访客到达转化目标页面的次数


ok,提一个问题,假设中国的34个省份(我就不区分省、直辖市、特别行政区这些了,这里只简单借此作为一个例子)每个省均只有一个接入互联网的网关,即只能通过该网关访问互联网资源,也就是说只有一个公网ip,我的问题是:假设这34个省每个省的所有用户每天都访问一次我的网站,试问24个小时之后,我网站的浏览量是所有用户的个数还是34,what about 独立ip?


答: 拿起你的小本本,开始做笔记了哟~这里涉及一些计算机网络的知识.为了照顾小姐姐我尽量说的通俗一点~首先给出答案,网站的访问量是所有访问用户的总个数,独立IP是34.解释一波:


  • 网站浏览量计算的是用户打开网站页面的次数,换句话说跟你的IP没有关系,就算你使用一个固定IP访问我的网站它的浏览量也会上去的
  • 每个省分配一个公网IP,独立IP数为34, 在每个省的"局域网"环境下,又有很多的局域网IP,之所以这样分配是为了解决IPV4地址不够用的问题,这些"局域网IP"去访问互联网资源必须通过网关,即对外显示是通过该省的公网IP访问的,也就是说通过34个独立的IP实现了全国人的访问(【注】: 这里的"局域网"并不是我们一般情况下的局域网,小可爱们不要混淆哟;每个省分配一个独立公网IP,这只是我为了说明这个问题而假想的一种理想情况,大家不要当真哟~理解问题最重要~)


二、如何刷网站流量(扯一点SEO的知识)


大家可以参考的我的另一篇技术分享(http://www.shipudong.com/2019/04/05/yi-dong-zhi-fu-na-xie-shi/)去了解更多关于搜索引擎的知识.


先给大家看下几个主流网站对我的排名情况:


  • Google


微信图片_20220609234702.jpg


  • 百度


微信图片_20220609234709.jpg


  • 搜狗


微信图片_20220609234717.jpg


  • 360


微信图片_20220609234722.jpg




从这个关键词搜索的词条排名情况和词条数目也能反映出这个搜索引擎的某些优缺点(当然有我自身技术的原因),单从爬虫速度来说: Google>搜狗>百度>360,搜狗应该算是爬虫速度频率比较高的了,百度对于我的网站的收录还有一些死链,360就不用说了,词条数和死链都是最少的,Google还收录了我网站的照片呢,而国内的三个均没有收录.细节见差异啊~


SEO属于网络营销人员的工作,这里我稍微点到为止,就不在专业的小可爱们面前装逼了.咱们做一个个人网站,为的就是让跟多的人能通过这个平台了解到自己的技术、甚至了解到自己,毫无疑问网站浏览量是一个相对权威的数据,虽然有的人可能说通过刷流量软件或者百度竞价(俗称"花钱买热搜")可以很快的提高,不过,我想说的是:既然认真做了网站,就别搞这些虚的,技术是真.


网站流量的提高:


  • 可以通过访问网站的用户数,就是那些认认真真关注你博客学习技术的小可爱们
  • 还有就是通过搜索引擎的爬虫程序从而提高你网站页面的权重,从而让你的网站通过关键词搜索之后能够在同类网站中排在靠前的位置,从而间接提高你的访问量,
  • 通过站长工具去做SEO(SEO的过程是比较漫长滴,涉及到网站页面的代码格式、关键词、网站的运行时间、外链内链等等,具体的还是请大家去参考我在该部分给大家分享的博文(http://www.shipudong.com/2019/04/05/yi-dong-zhi-fu-na-xie-shi/),里面有详细的讲解哟)


三、应用的安装


  • Python和webdriver的安装我在文章开始已经给了大家下载地址,大家自己安装吧~

安装完之后通过:


Python -V


在cmd里查看版本号,若显示如下,则代表安装成功,哎哟,你真棒~


微信图片_20220609234727.png


  • 然后就是下载webdriver,根据你电脑上Chrome的版本去下载相对应的那个驱动(大家可以通过这篇博客(https://blog.csdn.net/u013783095/article/details/79851194)来对照自己的Chrome和webdriver版本),然后理论上放在任意一个路径下都行,我是放在Chrome的文件下了:


微信图片_20220609234733.jpg


  • 最后就是selenium的安装了


  借用pip工具:



pip install selenium


ok,准备工作差不多就可以了,IDE这些大家自行解决(推荐:Pycharm)


四、 举个例子


大家自行搜索selenium的官方文档,同时也可以结合着我的例子进行学习


1. 自动打开"石璞东"网站页面



from selenium import webdriver
browser=webdriver.Chrome('C:\Program Files(x86)\Google\Chrome\Application\chromedriver.exe')
browser.get("http://www.shipudong.com")

【注】:可以通过配置环境变量直接使用webdriver.Chrome()来模拟一个浏览器,也可以通过webdriver.Chrome('C:\Program Files(x86)\Google\Chrome\Application\chromedriver.exe')直接来进行模拟.


2. 自动打开"百度"页面并输入关键词"石璞东"进行搜索


from selenium import webdriver
browser = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
browser.get("http://www.baidu.com")
browser.find_element_by_id('kw').send_keys("石璞东")
browser.find_element_by_id('su').click()

看下搜索框和提交按钮对应的HTML元素:


  • 提交按钮


微信图片_20220609234739.jpg


  • 搜索框


微信图片_20220609234744.jpg


【注】: 通过selenium提供的API找到搜索框和提交按钮,然后通过selenium来模拟填写关键词和点击提交按钮两种行为.


【再注】: 给大家看一可能是个百度非官方Python脚本(http://baidu.physton.com/?q=石璞东)的例子,有没有觉得这和我的这个例子有点异曲同工的味道呢,有就对了~哈哈


3. 网站浏览量的刷新


微信图片_20220609234748.jpg


我在第一部分已经说过了,这里再重述一遍:


  • 网站的浏览量对于一个网站来说是一个很重要的评价标准
  • 网站浏览量可以通过竞价、刷流量等多种方式实现


我在这里通过这个例子是为了向大家介绍selenium的使用,对于浏览量希望大家还是通过实力去获得来,说说思路,既然一个网站的浏览量通过多次的点击或者多次的刷新就可以提高,它跟ip地址没有一毛钱关系,那么我就可以写一个Python脚本让脚本来帮我执行,两个思路:


  • 间隔5s打开一次浏览器访问指定的网站,间隔5s关闭网站,如此往复执行
from selenium import webdriver
import time
def controlBrowser():
    driver = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
    driver.maximize_window()
    time.sleep(5)
    print("5秒后我就要访问石璞东的网站咯")
    driver.get("http://www.shipudong.com")
    time.sleep(5)
    print("5秒后我就要关闭浏览器咯")
    print("============================");
    driver.close()
if __name__=="__main__":
    while 1:
        controlBrowser()

间隔一段时间点击一次刷新按钮,就这样循环往复

from selenium import webdriver
import time
def controlBrowser():
    driver = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
    driver.get("http://www.shipudong.com")
    time.sleep(5)
    driver.refresh()
if __name__=="__main__":
    while 1:
        controlBrowser()


  • 为什么要间隔一段时间呢,这个问题很好,因为访问一个网站的实质就是:客户端发送请求,服务器端按照要求返回该网站的所有内容,也就是需要通过来网络传输数据,因为网络传输过程中的各种时延是不能确定的,所以这里留了一个时间间隔.

浏览量确实提升了呢~



微信图片_20220609234753.jpg


五、思路提供


还有两个例子,这里小编就不写代码了(大家放心,我文章中所有涉及到的例子在明年我考完研之后我都会把代码贴出来的),说下思路就行,哪个小可爱想写或者有兴趣,私聊我:


  • 某智慧树还有某尔雅这些在线的网络公选课,想必大家都知道吧,百度上一搜刷课软件全都是被封的消息,哈哈,我给大家理理思路:如何用selenium来实现呢?


   答: 在web端观看网络公选课视频,大概在视频时长一半的某个时间点内,会出现答题页面,这个时候视频进度会终止,所以对于一些开着电脑刷课的同学很是苦恼,得不停的去点击,这时候如果你懂Python的话,分分钟让你解决烦恼.简单来说,就是模拟一个点击事件:当页面弹出答题页面的时候通过selenium模拟点击操作,随便在ABCD选项中点击一个并点击"关闭按钮",很简单吧,那你就错了,问题是你如何知道具体什么时候出现大体页面呢?这里给两个思路:


   a.正面硬刚(获取视频的所有帧,通过图像识别算法进行相似度的分析)是不是有点太难了呢😄

   b. 换个思路(那硬刚不行,我就换个思路),已知基本上在视频时长的一半处会弹出答题页面,那我就设置一个定时(定时时间略大于视频长度的一半),然后通过selenium模拟浏览器的点击操作


  • web端的投票大家都知道吧,这很好搞的,想一个问题:为什么不允许用户无限次数的点击呢,屁话,当然是为了公平啊,哈哈,装个逼,咱们从技术上说说"如何办到这一点的"每点击有限次,客户端就会通过记录cookie的方式,来阻止你无限次的恶意点击,那对于我们这样闷骚的技术人,这能阻止我们的脚步吗,大声说:不能,很好,客户端敢记录我的cookie,那我就点击一次清理一次cookie,你来咬我呀,是不是就搞了呢.


写一下伪代码:

from selenium import webdriver
browser = webdriver.Chrome("webdriver的存放路径")
browser.get("投票链接地址")
browser.delete_all_cookies()#清理cookie
browser.find_element_by_id("投票按钮的id").click()
browser.close()#做完之后别忘了关掉浏览器装作啥也没发生过

哈哈,本周的分享就结束了,希望大家把刷课、投票这些当作一个例子去更好的理解selenium更好的使用它,而不是通过它做什么流氓软件破坏市场对吧,做一个懂规矩的软件人~

相关文章
|
21天前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
222 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
14天前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
66 0
|
3月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
6月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1160 103
|
3月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
21天前
|
SQL 测试技术 数据库
healenium+python+selenium
上次介绍了如何利用healenium+java+selenium来实现selenium的自愈,这次介绍如何healenium+python+selenium。关于healenium+python+selenium网上资料更少,并且甚至是错误的。在著名的书籍《软件测试权威指南中》也是有一定问题的。现在介绍如下
75 4
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
116 18
|
3月前
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
314 51
|
2月前
|
机器学习/深度学习 API 异构计算
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
JAX是Google开发的高性能数值计算库,旨在解决NumPy在现代计算需求下的局限性。它不仅兼容NumPy的API,还引入了自动微分、GPU/TPU加速和即时编译(JIT)等关键功能,显著提升了计算效率。JAX适用于机器学习、科学模拟等需要大规模计算和梯度优化的场景,为Python在高性能计算领域开辟了新路径。
180 0
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
|
2月前
|
数据采集 存储 Web App开发
Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
本文深入解析Python爬虫库的性能与选型策略,涵盖需求分析、技术评估与实战案例,助你构建高效稳定的数据采集系统。
252 0

热门文章

最新文章

推荐镜像

更多