zoukankan      html  css  js  c++  java
  • bing查询旁站脚本

     1 #!/usr/bin/env python
     2 # -*- coding: UTF-8 -*-
     3 #by i3ekr
     4 
     5 import re,optparse,sys,requests,time,os
     6 
     7 parse = optparse.OptionParser(usage="python %prog -i '127.0.0.1'",version="%prog 1.0")
     8 parse.add_option('-i','--ip',action='store',dest='ip',help='ip parse...')
     9 parse.add_option('-o','--out',action='store',dest='out',help='this parse is out result file exp:-o "/tmp/result.txt""')
    10 parse.set_defaults(v=1.2)
    11 options,args=parse.parse_args()
    12 
    13 
    14 def gethtml(ip,page):
    15     try:
    16         html = requests.get("https://www.bing.com/search?q=ip:"+ip+"&qs=ds&first="+str(page)+"&FORM=PERE4").content
    17         return html
    18     except Exception as e:
    19         return "访问错误"
    20         exit()
    21 
    22 def chongfu():
    23     with open("./tmp.txt","r") as f:
    24         tmp = f.read()
    25         url = tmp.split("
    ")
    26         for i in set(url):
    27             with open("ok.txt","a") as f:
    28                 f.write(i+'
    ')
    29 
    30 def geturl(html):
    31     try:
    32         url = re.findall(r"(?<=<cite>).*?(?=</cite>)", html)
    33         print url
    34         for u in url:
    35             with open("./tmp.txt","a") as f:
    36                 f.write(u+"
    ")
    37                 f.close()
    38     except Exception as e:
    39         raise e
    40 
    41 #根据索引出来的搜索量来判断有多少个页面,返回值是页面数量
    42 def result_page():
    43     try:
    44         num = str(re.findall(r"<span class="sb_count">(.*?)</span><span class="ftrB"",html)[0]).strip(" 条结果")
    45         page = int(num.replace(",",""))
    46         return page/10
    47     except Exception as e:
    48         print "没有与此相关的结果"
    49         exit()
    50 
    51 
    52 
    53 
    54 if __name__ == "__main__":
    55     print """
    56             =========================
    57             [+] by i3ekr
    58             [+] Blog nul1.cnblogs.com
    59             [+] Time 2018/6/13
    60             =========================
    61     """
    62     if len(sys.argv) > 2:
    63         url_pangzhan = []
    64         pg = 1
    65         ip = options.ip
    66         f = False
    67         while True:
    68             if f == False:
    69                 html = requests.get("https://www.bing.com/search?q=ip:"+ip+"&qs=ds&first=1&FORM=PERE4").content
    70                 result_page()
    71                 f = True
    72             else:
    73                 for i in xrange(0,result_page()):
    74                     html = gethtml(ip,pg)
    75                     url = geturl(html)
    76                     print "第[%s]页"%(i+1)
    77                     pg+=11
    78 
    79                 chongfu()
    80                 os.remove('tmp.txt')
    81                 exit()
    82             
    83     else:
    84         print options.usage()
    85         exit()
  • 相关阅读:
    浅谈 C++ 多态性
    浅谈 C++ 继承
    C++ 深拷贝浅拷贝
    C++ 斐波那契数列
    C++ 指针函数和lambda
    设计模式之单例模式
    结构体中内存对齐和补齐
    AWS S3文件存储工具类
    Java Springboot学习(三) Thymeleaf 、mybatis-plus
    Java Springboot学习(三) 整合springmvc、jdbc、mybatis
  • 原文地址:https://www.cnblogs.com/nul1/p/9189692.html
Copyright © 2011-2022 走看看