浏览器配置脚本的编写

用本本上网时,往返家里和单位,因为单位是用的代理上网,家里是直接连接.因此每次都要修改IE的代理设置,虽然是个小事,但是每次都要修改总是有点烦,于是参考GOOGLE,写了一个自动配置代理的脚本.这样无论在家和在公司,只要连上局域网就可以上网了.

function FindProxyForURL(url,host){
    if((isPlainHostName(host))||shExpMatch(url,"http://127.0.0.1/*")||isInNet(host,"192.168.0.0", "255.255.255.0")){
        return "direct";
    } else {
          if(myIpAddress()=="192.168.0.49")
               return "PROXY 192.168.0.6:808";
        else
              return "direct";
    }
}


把以上代码另存为proxy.pac的文件,如:c:/proxy.pac,然后在IE的菜单里"工具"->"INTEL选项"->"连接"->局域网设置

把使用自动配置脚本选上,然后在地址栏填入file://c:/proxy.pac,注意file后是两斜杠,要使设置生效,需要关闭IE再重新打开.

现在我们介绍下这个proxy.pac脚本文件,脚本的语法是js语法,js的内置函数可以使用,要实现自动配置代理,需要实现FindProxyForURL这个函数,其参数url代表要访问的连接,host代表要访问连接的主机名,该函数有三个返回参数
direct:直接连接
proxy IP:PORT
socket IP:PORT
返回结果大小写不敏感

PAC的其他内置语法见http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

http://www.findmeat.org/tutorials/javascript/x478495.htm


PAC脚本另外一个重要的应用是多台代理服务器并存的情况下,通过pac脚本的控制:

用户随机选择使用多台代理服务器中的任意一台来达到流量负载均衡的目的;
管理员通过PAC脚本控制用户使用和不使用某台代理服务器,这样可以空出时间对代理服务器进行维护;
让服务器工作在主备模式,当主服务器宕机时,会自动切换到其它备用服务器而不会中断服务;
根据访问目的地的不同,自动选择最佳代理服务器。

下面列举几个PAC的实例,顺便学习下它的语法

a、isPlainHostName(host),本例演示判断是否为本地主机,如http://myservername/
  的方式访问,如果是直接连接,否则使用代理
  function FindProxyForURL(url, host)
  {
    if (isPlainHostName(host))
      return "DIRECT";
    else
      return "PROXY proxy:80";
  }
 
  b、dnsDomainIs(host, "")、localHostOrDomainIs(host, ""),本例演示判断访问主机
  是否属于某个域和某个域名,如果属于.company.com域的主机名,而域名不是
  www.company.com和home.company.com的直接连接,否则使用代理访问。
   function FindProxyForURL(url, host)
  {
    if ((isPlainHostName(host) ||
       dnsDomainIs(host, ".company.com")) &&
      !localHostOrDomainIs(host, "www.company.com") &&
      !localHostOrDomainIs(host, "home.company.com"))

      return "DIRECT";
    else
      return "PROXY proxy:80";
  }
 
  c、isResolvable(host),本例演示主机名能否被dns服务器解析,如果能直接访问,否
  则就通过代理访问。
   function FindProxyForURL(url, host)
  {
    if (isResolvable(host))
      return "DIRECT";
    else
      return "PROXY proxy:80";
  }
 
  d、isInNet(host, "", ""),本例演示访问IP是否在某个子网内,如果是就直接访问,
  否则就通过代理,例子演示访问清华IP段的主页不用代理。
   function FindProxyForURL(url, host)
{
    if (isInNet(host, "166.111.0.0", "255.255.0.0"))
      return "DIRECT";
    else
      return "PROXY proxy:80";
}
 
e、shExpMatch(host, ""),本例演示根据主机域名来改变连接类型,本地主机、*.edu、
  *.com分别用不同的连接方式。
  function FindProxyForURL(url, host)
  {
    if (isPlainHostName(host))
      return "DIRECT";
    else if (shExpMatch(host, "*.com"))
      return "PROXY comproxy:80";
    else if (shExpMatch(host, "*.edu"))
      return "PROXY eduproxy:80";
    else
      return "PROXY proxy:80";
  }
 
f、url.substring(),本例演示根据不同的协议来选择不同的代理,http、https、ftp、
  gopher分别使用不同的代理。
  function FindProxyForURL(url, host)
  {
      if (url.substring(0, 5) == "http:") {
        return "PROXY proxy:80";
      }
      else if (url.substring(0, 4) == "ftp:") {
        return "PROXY fproxy:80";
      }
      else if (url.substring(0, 7) == "gopher:") {
        return "PROXY gproxy";
      }
      else if (url.substring(0, 6) == "https:") {
        return "PROXY secproxy:8080";
      }
      else {
        return "DIRECT";
      }
  }
 
  g、dnsResolve(host),本例演示判断访问主机是否某个IP,如果是就使用代理,否则直
  接连接。
function FindProxyForURL(url, host)
{
   if (dnsResolve(host) == "166.111.8.237") {
        return "PROXY secproxy:8080";
      }
      else {
        return "PROXY proxy:80";
      }
}
 
  h、myIpAddress(),本例演示判断本地IP是否某个IP,如果是就使用代理,否则直接使
  用连接。
  function FindProxyForURL(url, host)
  {
      if (myIpAddress() == "166.111.8.238") {
        return "PROXY proxy:80";
      }
      else {
        return "DIRECT";
      }
  }
 
  i、dnsDomainLevels(host),本例演示访问主机的域名级数是几级,就是域名有几个点
  如果域名中有点,就通过代理访问,否则直接连接。
   function FindProxyForURL(url, host)
  {
      if (dnsDomainLevels(host) > 0) { // if number of dots in host > 0
        return "PROXY proxy:80";
      }
        return "DIRECT";
  }
 
  j、weekdayRange(),本例演示当前日期的范围来改变使用代理,如果是GMT时间周三
  到周六,使用代理连接,否则直接连接。
  function FindProxyForURL(url, host)
  {
    if(weekdayRange("WED", "SAT", "GMT"))
     return "PROXY proxy:80";
    else
     return "DIRECT";
  }
 
  k、最后一个例子是演示随机使用代理,这样可以好好利用代理服务器。
function FindProxyForURL(url,host)
{
      return randomProxy();
}

function randomProxy()
{
     switch( Math.floor( Math.random() * 5 ) )
     {
         case 0:
             return "PROXY proxy1:80";
             break;
         case 1:
             return "PROXY proxy2:80";
             break;
         case 2:
             return "PROXY proxy3:80";
             break;
         case 3:
             return "PROXY proxy4:80";
             break;
         case 4:
             return "PROXY proxy5:80";
             break;
     }   
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 随着互联网的不断发展和成熟,越来越多的游戏和网站采用自动化操作和挂机的方式来提高游戏体验和网站效率。而python编写的自动化挂机脚本则成为了一个非常热门的话题。 Python是一种高级编程语言,具有简单易于学习、灵活、可扩展性等特点,被广泛应用于自动化操作,包括自动测试,爬虫等。Python的高效能使其成为自动化挂机脚本的理想语言。 在编写自动化挂机脚本时,需要明确挂机的目的和实现方式。一般说来,挂机脚本需要输入一些参数,如登录信息、要执行的操作等,然后模拟人的操作,完成一系列自动化任务。这一过程需要使用Python的库和模块,实现自动的登陆、自动化操作、定时和循环执行等功能。 具体操作步骤为:首先需要安装模拟浏览器的模块,配置Python的环境,使用官方API进行爬取、模拟登陆等。根据不同的任务,编写不同的脚本。例如,自动化刷网站签到、刷论坛发帖、刷粉丝等,都可以用Python实现。 总之,Python编写自动化挂机脚本可以使得我们的生活便捷化和效率提高,同时提高自己的编程水平,但是请注意遵守游戏和网站的相关规定和法律法规,切勿使用脚本进行非法操作。 ### 回答2: Python作为一种高级编程语言,由于其简单易用和强大的功能而受到广泛的欢迎。除了可以用它来进行数据分析、机器学习和Web开发之外,Python还可以用来编写自动化挂机脚本,以便在没有人员干预的情况下执行一系列任务。 编写自动化挂机脚本的步骤如下: 1. 确定要执行的任务 在编写自动化挂机脚本之前,首先要确定需要挂机的任务。这可能包括收集信息、文件下载、爬虫等等任务。可以根据需求编写Python代码来实现这些任务,以便可以自动化执行。 2. 编写脚本 一旦确定了要执行的任务,就可以开始编写Python脚本了。开始时,需要导入所需的库比如Selenium、Pandas和numpy等等,来扩展Python的功能。然后,需要编写脚本来完成任务,这可能包括通过模拟登陆网站、控制鼠标和键盘、打开/关闭浏览器窗口等等的操作。 在编写脚本时,需要注意到一些陷进。比如要避免编写过于简单和容易被检测到的代码,以及要注意使用合适的休眠时间和等待时间。因为过快的执行脚本可能会被检测到并禁止使用。 3. 测试和调试代码 一旦编写脚本完成,就可以进行测试和调试了。测试通过以后,可以在线上传、后台运行等等,确保脚本可以自动化执行任务。 总之,Python是一种强大的编程语言,适用于各种编程任务。借助Python,可以轻松编写自动化挂机脚本,以便实现各种任务自动化执行。 ### 回答3: 最近,在一些游戏、论坛和社交媒体应用中,使用自动化挂机脚本的趋势越来越流行。这些脚本可以帮助玩家在游戏中轻松获得经验和奖励,或者在论坛和社交媒体中增加自己的活跃度。Python是一种非常适合编写自动化挂机脚本的编程语言,因为它具有许多用于简化Web自动化的库。 Python中最受欢迎的用于自动化的库之一是Selenium。它可以模拟用户在浏览器中的行为,包括单击按钮、填表单和导航到不同的页面。使用Selenium,可以轻松地编写一个能够自动登录、自动完成任务、自动退出的挂机程序。为了更好的模拟人类行为,可以添加一些等待时间,模拟用户使用键盘和鼠标等操作,从而减小被识别为机器人的概率。 除了Selenium,还有一些其他的库也可以用于自动化,例如Requests、BeautifulSoup和Scrapy等等。无论使用何种库,编写自动化挂机脚本需要对Web开发和网络请求有基本的了解。自动化程序需要访问网站并从HTML代码中提取所需的信息,这通常需要解析HTML并使用正则表达式或xpath进行处理。 然而,需要注意的是,自动化脚本并非万能的,有许多游戏和站点将会检测和封禁使用挂机脚本的玩家或用户。此外,请务必尊重游戏和站点的规则,不要使用脚本进行作弊或滥用。 在编写自动化挂机脚本的过程中,建议重点关注以下步骤: 1. 确定目标:想要自动化什么,例如游戏中刷怪、刷经验、获取金币等等,或者在社交媒体或论坛中进行什么操作。 2. 确定技术:选择需要使用的库,根据目标进行判断。Selenium是最常用的库之一,但是在某些情况下,其他的库可能比Selenium更加适用。 3. 分析目标网站:访问目标站点,并通过观察页面源代码了解它的结构和使用方式。 4. 编写代码:根据目标和技术确定代码的具体内容。可以以模块化的方式编写代码,每个模块可实现一个特定的功能。 5. 测试脚本:测试脚本的正确性和稳定性,并修复可能出现的错误。 编写自动化挂机脚本需要有一定的编程技能和网络技术。如果您不确定如何编写脚本,或对此有疑问,请咨询有经验的人士或寻求帮助。最重要的是,请不要滥用自动化脚本,尊重网站的规则和条款。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值