12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import requests
- import xml.etree.ElementTree as ET
- class Bing:
- def __init__(self):
- self.url = 'https://www.bing.com/search'
- self.hosts = []
- def search_hosts(self, hosts):
- for host in hosts:
- self.search(host['ip'], 1)
- return self.hosts
- def search(self, ip, first):
- for first in range(1, 200, 10):
- urls = []
- vhosts = []
- r = requests.get(self.url, params={'q': 'ip:' + ip, 'format': 'rss', 'first': first})
- tree = ET.fromstring(r.content)
- urls = self.parse(tree)
- if len(urls) < 10:
- break
- for u in urls:
- vhost = u.rsplit('/')[2]
- if vhost not in vhosts:
- vhosts.append(vhost)
- #print({'ip': ip, 'vhosts': vhosts, 'urls': urls})
- self.hosts.append({'ip': ip, 'vhosts': vhosts, 'urls': urls})
- def parse(self, tree):
- urls = []
- vhosts = []
- count = 0
- for i in tree[0]:
- if i.tag == 'item':
- count += 1
- url = i[1].text
- if url not in urls:
- urls.append(url)
- return urls
|