├── imgs ├── ddumplogo.png └── darkdump_example.png ├── requirements.txt ├── LICENSE ├── banner └── banner.py ├── README.md ├── darkdump.py └── headers └── agents.py /imgs/ddumplogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josh0xA/darkdump/HEAD/imgs/ddumplogo.png -------------------------------------------------------------------------------- /imgs/darkdump_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josh0xA/darkdump/HEAD/imgs/darkdump_example.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.12.3 2 | certifi==2024.8.30 3 | charset-normalizer==3.4.0 4 | click==8.1.7 5 | idna==3.10 6 | joblib==1.4.2 7 | nltk==3.9.1 8 | PySocks==1.7.1 9 | regex==2024.11.6 10 | requests==2.32.3 11 | soupsieve==2.6 12 | termcolor==2.5.0 13 | textblob==0.18.0.post0 14 | tqdm==4.67.1 15 | urllib3==2.2.3 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Josh Schiavone 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /banner/banner.py: -------------------------------------------------------------------------------- 1 | ''' 2 | MIT License 3 | Copyright (c) 2024 Josh Schiavone 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | ''' 23 | 24 | import sys 25 | sys.dont_write_bytecode = True 26 | 27 | class Banner(object): 28 | def LoadDarkdumpBanner(self): 29 | try: 30 | from termcolor import cprint, colored 31 | banner = ''' 32 | _ _ _ __ 33 | __| | __ _ _ __| | ____| |_ _ _ __ ___ _ __ / / 34 | / _` |/ _` | '__| |/ / _` | | | | '_ ` _ \| '_ \ / / 35 | | (_| | (_| | | | < (_| | |_| | | | | | | |_) | / / 36 | \__,_|\__,_|_| |_|\_\__,_|\__,_|_| |_| |_| .__/ /_/ v3 by Josh Schiavone 37 | |_| 38 | ''' 39 | 40 | cprint(banner, 'magenta', attrs=['bold']) 41 | 42 | except ImportError as ie: 43 | print(banner) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # darkdump 2 | 3 | ## About 4 | Darkdump is a OSINT interface for carrying out deep web investgations written in python in which it allows users to enter a search query in which darkdump provides the ability to scrape .onion sites relating to that query to try to extract emails, metadata, keywords, images, social media etc. Darkdump retrieves sites via Ahmia.fi and scrapes those .onion addresses when connected via the tor network. 5 | 6 | ## Installation 7 | 1) ``git clone https://github.com/josh0xA/darkdump``
8 | 2) ``cd darkdump``
9 | 3) ``python3 -m pip install -r requirements.txt``
10 | 4) ``python3 darkdump.py --help``
11 | 12 | ### Tor Configuration 13 | To use Darkdump effectively, you need to configure Tor to allow your script to control it via the Tor control port. Here's how to set up your `torrc` file and verify that Tor is running:
14 | 15 | #### Step 1: Install Tor 16 | If Tor is not already installed on your system, you need to install it. Here's how you can install Tor on various operating systems: 17 | 18 | Debian/Kali/Ubuntu: `sudo apt install tor`
19 | MacOS: `brew install tor`
20 | 21 | #### Step 2: Configure the Tor torrc File
22 | Locate your torrc file. This file is usually found at `/etc/tor/torrc`on Linux and sometimes Mac. 23 | 24 | Add the following lines to your torrc to enable the control port and set a control port password: 25 | ``` 26 | ControlPort 9051 27 | HashedControlPassword [YourHashedPasswordHere] 28 | ``` 29 | Replace `[YourHashedPasswordHere]` with a hashed password which can be generated using the `tor --hash-password` command: `tor --hash-password "my_password"` 30 | 31 | #### Step 3: Start Tor Service 32 | Linux: `sudo systemctl start tor.service`
33 | MacOS: `brew services start tor`
34 | 35 | ### Example Queries: 36 | `python3 darkdump.py -q "hacking" -a 10 --scrape --proxy` - search for 10 links and scrape each site
37 | `python3 darkdump.py -q "free movies" -a 25` - don't scrape, just return 25 links for that query (does not require tor)
38 | `python3 darkdump.py -q "marketplaces" -a 15 --scrape --proxy -i` - search for 10 links and scrape each site as well as find and store images. 39 | 40 | ## Menu 41 | ``` 42 | 43 | _ _ _ __ 44 | __| | __ _ _ __| | ____| |_ _ _ __ ___ _ __ / / 45 | / _` |/ _` | '__| |/ / _` | | | | '_ ` _ \| '_ \ / / 46 | | (_| | (_| | | | < (_| | |_| | | | | | | |_) | / / 47 | \__,_|\__,_|_| |_|\_\__,_|\__,_|_| |_| |_| .__/ /_/ v3 by Josh Schiavone 48 | |_| 49 | 50 | usage: darkdump.py [-h] [-v] [-q QUERY] [-a AMOUNT] [-p] [-i] [-s] 51 | 52 | Darkdump is an interface for scraping the deepweb through Ahmia. Made by yours truly. 53 | 54 | options: 55 | -h, --help show this help message and exit 56 | -v, --version returns darkdump's version 57 | -q QUERY, --query QUERY 58 | the keyword or string you want to search on the deepweb 59 | -a AMOUNT, --amount AMOUNT 60 | the amount of results you want to retrieve 61 | -p, --proxy use tor proxy for scraping 62 | -i, --images scrape images and visual content from the site 63 | -s, --scrape scrape the actual site for content and look for keywords 64 | 65 | ``` 66 | ## Visual 67 |

68 | 69 |

70 | 71 | ## Ethical Notice 72 | The developer of this program, Josh Schiavone, is not resposible for misuse of this data gathering tool. Do not use darkdump to navigate websites that take part in any activity that is identified as illegal under the laws and regulations of your government. May God bless you all. 73 | 74 | ## License 75 | MIT License
76 | Copyright (c) Josh Schiavone 77 | -------------------------------------------------------------------------------- /darkdump.py: -------------------------------------------------------------------------------- 1 | ''' 2 | MIT License 3 | Copyright (c) 2024 Josh Schiavone 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | ''' 23 | 24 | __version__ = 3 25 | 26 | import sys 27 | sys.dont_write_bytecode = True 28 | 29 | import nltk 30 | nltk.download('stopwords', quiet=True) 31 | nltk.download('punkt', quiet=True) 32 | nltk.download('punkt_tab', quiet=True) 33 | nltk.download('averaged_perceptron_tagger', quiet=True) 34 | 35 | import requests 36 | from bs4 import BeautifulSoup 37 | import os 38 | import time 39 | import argparse 40 | import random 41 | import re 42 | import json 43 | import socket 44 | 45 | from headers.agents import Headers 46 | from banner.banner import Banner 47 | 48 | from nltk.corpus import stopwords 49 | from nltk.tokenize import word_tokenize 50 | from nltk.probability import FreqDist 51 | from textblob import TextBlob 52 | 53 | notice = ''' 54 | Note: 55 | This tool is not to be used for illegal purposes. 56 | The author is not responsible for any misuse of Darkdump. 57 | May God bless you all. 58 | https://joshschiavone.com - https://github.com/josh0xA 59 | ''' 60 | 61 | class Colors: 62 | W = '\033[0m' # white 63 | R = '\033[31m' # red 64 | G = '\033[32m' # green 65 | O = '\033[33m' # orange 66 | B = '\033[34m' # blue 67 | P = '\033[35m' # purple 68 | C = '\033[36m' # cyan 69 | GR = '\033[37m' # gray 70 | BOLD = '\033[1m' 71 | END = '\033[0m' 72 | 73 | class Configuration: 74 | DARKDUMP_ERROR_CODE_STANDARD = -1 75 | DARKDUMP_SUCCESS_CODE_STANDARD = 0 76 | DARKDUMP_MIN_DATA_RETRIEVE_LENGTH = 1 77 | DARKDUMP_RUNNING = False 78 | 79 | DARKDUMP_OS_UNIX_LINUX = False 80 | DARKDUMP_OS_WIN32_64 = False 81 | DARKDUMP_OS_DARWIN = False 82 | 83 | DARKDUMP_REQUESTS_SUCCESS_CODE = 200 84 | DARKDUMP_PROXY = False 85 | DARKDUMP_TOR_RUNNING = False 86 | 87 | descriptions = [] 88 | urls = [] 89 | 90 | __socks5init__ = "socks5h://localhost:9050" 91 | __darkdump_api__ = "https://ahmia.fi/search/?q=" 92 | 93 | class Platform(object): 94 | def __init__(self, execpltf): 95 | self.execpltf = execpltf 96 | 97 | def get_operating_system_descriptor(self): 98 | cfg = Configuration() 99 | clr = Colors() 100 | 101 | if self.execpltf: 102 | if sys.platform == "linux" or sys.platform == "linux2": 103 | cfg.DARKDUMP_OS_UNIX_LINUX = True 104 | print(clr.BOLD + clr.W + "Operating System: " + clr.G + sys.platform + clr.END) 105 | if sys.platform == "win64" or sys.platform == "win32": 106 | cfg.DARKDUMP_OS_WIN32_64 = True 107 | print(clr.BOLD + clr.W + "Operating System: " + clr.G + sys.platform + clr.END) 108 | if sys.platform == "darwin": 109 | cfg.DARKDUMP_OS_DARWIN = True 110 | print(clr.BOLD + clr.W + "Operating System: " + clr.G + sys.platform + clr.END) 111 | else: pass 112 | 113 | def clean_screen(self): 114 | cfg = Configuration() 115 | if self.execpltf: 116 | if sys.platform == "linux" or sys.platform == "linux2" or sys.platform == "darwin": 117 | os.system('clear') 118 | else: os.system('cls') 119 | else: pass 120 | 121 | def check_tor_connection(self, proxy_config): 122 | test_url = 'https://check.torproject.org/api/ip' 123 | try: 124 | response = requests.get(test_url, proxies=proxy_config, timeout=20) 125 | if response.status_code == 200: 126 | data = response.json() 127 | if data.get('IsTor', False): 128 | print(f"{Colors.BOLD + Colors.G}Tor service is active.{Colors.END}") 129 | print(f"{Colors.BOLD + Colors.P}Current IP Address via Tor: {Colors.END}{data.get('IP')}") 130 | return True 131 | print(f"{Colors.BOLD + Colors.R}Connection successful but not through Tor.{Colors.END}") 132 | return False 133 | except Exception as e: 134 | print(f"{Colors.BOLD + Colors.R}Tor is inactive or not configured properly: {str(e)}{Colors.END}") 135 | return False 136 | 137 | class Darkdump(object): 138 | def clean_text(self, html_content): 139 | soup = BeautifulSoup(html_content, 'html.parser') 140 | text = soup.get_text() 141 | text = re.sub(r'[\r\n]+', ' ', text) 142 | text = re.sub(r'\s+', ' ', text) 143 | text = re.sub(r'[^a-zA-Z0-9\s]', '', text) 144 | return text.strip() 145 | 146 | def extract_keywords(self, text): 147 | clean_text = self.clean_text(text) 148 | stop_words = set(stopwords.words('english')) 149 | word_tokens = word_tokenize(clean_text.lower()) 150 | filtered_text = [word for word in word_tokens if word.isalnum() and not word in stop_words] 151 | freq_dist = FreqDist(filtered_text) 152 | keywords = list(freq_dist)[:18] 153 | return keywords 154 | 155 | def analyze_text(self, text): 156 | # Tokenize text 157 | words = word_tokenize(text) 158 | # Remove stopwords 159 | stop_words = set(stopwords.words('english')) 160 | filtered_words = [word for word in words if word.lower() not in stop_words and word.isalnum()] 161 | 162 | freq_dist = FreqDist(filtered_words) 163 | top_words = freq_dist.most_common(10) 164 | 165 | blob = TextBlob(text) 166 | sentiment = blob.sentiment 167 | 168 | return { 169 | 'top_words': top_words, 170 | 'sentiment': { 171 | 'polarity': sentiment.polarity, # -1 to 1 where 1 means positive statement 172 | 'subjectivity': sentiment.subjectivity # 0 to 1 where 1 is very subjective 173 | } 174 | } 175 | 176 | def sanitize_filename(self, url): 177 | keepcharacters = (' ', '.', '_', '-') 178 | return "".join(c for c in url if c.isalnum() or c in keepcharacters).rstrip() 179 | 180 | def generate_html(self, image_urls, base_url): 181 | filename = self.sanitize_filename(base_url) + '.html' 182 | filepath = os.path.join('dd_scrape_image_dump', filename) 183 | os.makedirs('dd_scrape_image_dump', exist_ok=True) 184 | html_content = 'Image Gallery' 185 | for url in image_urls: 186 | html_content += f'Image
' 187 | html_content += '' 188 | 189 | with open(filepath, 'w') as file: 190 | file.write(html_content) 191 | return filepath 192 | 193 | def extract_links(self, soup): 194 | links = [a['href'] for a in soup.find_all('a', href=True)] 195 | return links 196 | 197 | def extract_metadata(self, soup): 198 | """Extract metadata from the page.""" 199 | meta_data = {} 200 | for meta in soup.find_all('meta'): 201 | meta_name = meta.get('name') or meta.get('property') 202 | if meta_name: 203 | meta_data[meta_name] = meta.get('content') 204 | return meta_data 205 | 206 | def extract_emails(self, soup): 207 | text = soup.get_text() 208 | email_pattern = re.compile(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b') 209 | emails = email_pattern.findall(text) 210 | return emails 211 | 212 | def extract_document_links(self, soup): 213 | doc_types = [ 214 | '.pdf', '.doc', '.docx', '.xlsx', '.xls', '.ppt', '.pptx', 215 | '.txt', '.csv', '.rtf', '.odt', '.ods', '.odp', '.epub', 216 | '.mobi', '.log', '.msg', '.wpd', '.wps', '.tex', '.vsd', 217 | '.xml', '.json', '.xps', '.md', '.code', '.mp3', '.wav', 218 | '.mp4', '.avi', '.mov', '.flv', '.wma', '.aac', '.dll', 219 | '.exe', '.zip', '.tar', '.gz', '.rar', '.7z', '.bz2', 220 | '.vmdk', '.iso', '.bin', '.img', '.dmg' 221 | ] 222 | links = [a['href'] for a in soup.find_all('a', href=True) if any(doc_type for doc_type in doc_types if a['href'].endswith(doc_type))] 223 | return links 224 | 225 | 226 | def crawl(self, query, amount, use_proxy=False, scrape_sites=False, scrape_images=False, debug_mode=False): 227 | headers = {'User-Agent': random.choice(Headers.user_agents)} 228 | proxy_config = {'http': 'socks5h://localhost:9050', 'https': 'socks5h://localhost:9050'} if use_proxy else {} 229 | 230 | # Fetching the initial search page 231 | try: 232 | page = requests.get(Configuration.__darkdump_api__ + query, headers=headers) 233 | soup = BeautifulSoup(page.content, 'html.parser') 234 | results = soup.find(id='ahmiaResultsPage') # Adjust based on actual result container ID 235 | second_results = results.find_all('li', class_='result') # Adjust based on actual results tag and class 236 | except Exception as e: 237 | print(f"{Colors.BOLD + Colors.R} Error in fetching Ahmia.fi: {e} {Colors.END}") 238 | return 239 | 240 | seen_urls = set() # This set will store URLs to avoid duplicates 241 | 242 | if scrape_sites: 243 | if Platform(True).check_tor_connection(proxy_config) == False: return 244 | 245 | for idx, result in enumerate(second_results[:min(amount + 1, len(second_results))], start=1): 246 | site_url = result.find('cite').text 247 | if "http://" not in site_url and "https://" not in site_url: 248 | site_url = "http://" + site_url 249 | 250 | if site_url in seen_urls: 251 | continue 252 | seen_urls.add(site_url) 253 | 254 | title = result.find('a').text if result.find('a') else "No title available" 255 | description = result.find('p').text if result.find('p') else "No description available" 256 | try: 257 | if scrape_sites: 258 | try: 259 | site_response = requests.get(site_url, headers=headers, proxies=proxy_config) 260 | site_soup = BeautifulSoup(site_response.content, 'html.parser') 261 | text_analysis = self.analyze_text(site_soup.get_text()) 262 | metadata = self.extract_metadata(site_soup) 263 | links = self.extract_links(site_soup) 264 | emails = self.extract_emails(site_soup) 265 | documents = self.extract_document_links(site_soup) 266 | 267 | if scrape_images: 268 | images = site_soup.find_all('img') 269 | image_urls = [img['src'] for img in images if img.get('src')] 270 | image_urls = [url if url.startswith('http') else site_url + url for url in image_urls] 271 | 272 | html_path = self.generate_html(image_urls, site_url) 273 | images_str = f"{Colors.BOLD}| Images Gallery: {Colors.END}{Colors.G}{os.path.abspath(html_path)}{Colors.END}\n" 274 | 275 | print('-' * 50) 276 | print(f"{Colors.BOLD}{idx + 1}.\n --- [+] Website: {Colors.END}{Colors.P}{title.strip()}{Colors.END}") 277 | print(f"{Colors.BOLD}| Information: {Colors.END}{Colors.G}{description.strip()}{Colors.END}") 278 | print(f"{Colors.BOLD}| Onion Link: {Colors.END}{Colors.G}{site_url}{Colors.END}") 279 | print(f"{Colors.BOLD}| Keywords: {Colors.END}{Colors.G}{', '.join(self.extract_keywords(site_soup.get_text()))}{Colors.END}") 280 | print(f"{Colors.BOLD}\t- Sentiment: Polarity = {text_analysis['sentiment']['polarity']:.2f}, Subjectivity = {text_analysis['sentiment']['subjectivity']:.2f}") 281 | print(f"{Colors.BOLD}| Metadata: {Colors.END}{Colors.G}{json.dumps(metadata)}{Colors.END}") 282 | print(f"{Colors.BOLD}| Links Found: {Colors.END}{Colors.G}{len(links)}{Colors.END}") 283 | print(f"{Colors.BOLD}| Emails Found: {Colors.END}{Colors.G}{', '.join(emails) if emails else 'No emails found.'}{Colors.END}") 284 | print(f"{Colors.BOLD}| Documents Found: {Colors.END}{Colors.G}{', '.join(documents) if documents else 'No document links found.'}{Colors.END}") 285 | 286 | if scrape_images: 287 | if image_urls: 288 | print(images_str) 289 | else: print(f"{Colors.BOLD + Colors.GR} No images found. Skipping parse. {Colors.END}") 290 | 291 | except Exception as e: 292 | print(f"{Colors.BOLD + Colors.O} Dead onion, skipping...: {site_url} {Colors.END}") 293 | if debug_mode: 294 | print(f"{Colors.BOLD + Colors.R}[DEBUG] Exception: {e}{Colors.END}") 295 | 296 | else: # No scrape 297 | print(f"{Colors.BOLD}{idx + 1}. --- [+] Website: {Colors.END}{Colors.P}{title.strip()}{Colors.END}") 298 | print(f"{Colors.BOLD}\t Information: {Colors.END}{Colors.G}{description.strip()}{Colors.END}") 299 | print(f"{Colors.BOLD}| Onion Link: {Colors.END}{Colors.G}{site_url}{Colors.END}\n") 300 | 301 | 302 | except KeyboardInterrupt as ki: 303 | print(f"{Colors.BOLD + Colors.R} Quitting... {Colors.END}") 304 | 305 | 306 | def darkdump_main(): 307 | clr = Colors() 308 | bn = Banner() 309 | 310 | Platform(True).clean_screen() 311 | Platform(True).get_operating_system_descriptor() 312 | bn.LoadDarkdumpBanner() 313 | print(notice) 314 | 315 | parser = argparse.ArgumentParser(description="Darkdump is an interface for scraping the deepweb through Ahmia. Made by yours truly.") 316 | parser.add_argument("-v", "--version", help="returns darkdump's version", action="store_true") 317 | parser.add_argument("-q", "--query", help="the keyword or string you want to search on the deepweb", type=str) 318 | parser.add_argument("-a", "--amount", help="the amount of results you want to retrieve", type=int, default=10) 319 | parser.add_argument("-p", "--proxy", help="use tor proxy for scraping", action="store_true") 320 | parser.add_argument("-i", "--images", help="scrape images and visual content from the site", action="store_true") 321 | parser.add_argument("-s", "--scrape", help="scrape the actual site for content and look for keywords", action="store_true") 322 | parser.add_argument("-d", "--debug", help="enable debug output", action="store_true") 323 | 324 | args = parser.parse_args() 325 | 326 | if args.version: 327 | print(Colors.BOLD + Colors.B + f"Darkdump Version: {__version__}\n" + Colors.END) 328 | 329 | if args.proxy and not args.scrape: 330 | print(Colors.BOLD + Colors.R + "Error: Proxy option '-p' must be used with the scraping option '-s'." + Colors.END) 331 | parser.print_help() 332 | sys.exit(1) 333 | 334 | if args.images and not args.scrape: 335 | print(Colors.BOLD + Colors.R + "Error: Images option '-i' must be used with the scraping option '-s'." + Colors.END) 336 | parser.print_help() 337 | sys.exit(1) 338 | 339 | if args.debug: 340 | print(f"{Colors.R}DEBUG mode is on.{Colors.W}") 341 | 342 | if args.query: 343 | print(f"Searching For: {args.query} and showing {args.amount} results...\nIndexing is viable, skipping dead onions.\n") 344 | Darkdump().crawl(args.query, args.amount, use_proxy=args.proxy, scrape_sites=args.scrape, scrape_images=args.images, debug_mode=args.debug) 345 | else: 346 | print("[~] Note: No query arguments were passed. Please supply a query to search.") 347 | 348 | if __name__ == "__main__": 349 | darkdump_main() 350 | -------------------------------------------------------------------------------- /headers/agents.py: -------------------------------------------------------------------------------- 1 | ''' 2 | MIT License 3 | Copyright (c) 2024 Josh Schiavone 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | ''' 23 | 24 | import sys 25 | sys.dont_write_bytecode = True 26 | 27 | class Headers: 28 | user_agents = [ 29 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36', 30 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) chromeframe/10.0.648.205', 31 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_0) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4', 32 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36', 33 | 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01', 34 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2', 35 | 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 36 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)', 37 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 38 | 'Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36', 39 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 40 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)', 41 | 'Mozilla/5.0 (Linux; U; Android 2.3; en-us) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9', 42 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36', 43 | 'Opera/9.80 (X11; Linux i686; U; ja) Presto/2.7.62 Version/11.01', 44 | 'Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36', 45 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36', 46 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)', 47 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)', 48 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; ja) Opera 11.00', 49 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)', 50 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24', 51 | 'Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.7.62 Version/11.01', 52 | 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)', 53 | 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36', 54 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1', 55 | 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36', 56 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.17 Safari/537.11', 57 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.8.36217; WOW64; en-US)', 58 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36', 59 | 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5', 60 | 'Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/536.5 (KHTML like Gecko) Chrome/19.0.1084.56 Safari/1EA69', 61 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6', 62 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 63 | 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36', 64 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4', 65 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36', 66 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', 67 | 'Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)', 68 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10', 69 | 'Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; HTC_IncredibleS_S710e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 70 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET CLR 1.1.4322; .NET4.0C; Tablet PC 2.0)', 71 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1467.0 Safari/537.36', 72 | 'Mozilla/5.0 (X11; CrOS i686 1660.57.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.46 Safari/535.19', 73 | 'Mozilla/5.0 (Windows NT 6.1; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01', 74 | 'Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0', 75 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)', 76 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0; GTB7.4; InfoPath.3; SV1; .NET CLR 3.1.76908; WOW64; en-US)', 77 | 'Opera/9.80 (X11; Linux x86_64; U; Ubuntu/10.10 (maverick); pl) Presto/2.7.62 Version/11.01', 78 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3', 79 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)', 80 | 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.0; Trident/4.0; FBSMTWB; .NET CLR 2.0.34861; .NET CLR 3.0.3746.3218; .NET CLR 3.5.33652; msn OptimizedIE8;ENUS)', 81 | 'Opera/9.80 (Windows NT 5.1; U; en) Presto/2.9.168 Version/11.51', 82 | 'Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01', 83 | 'Opera/9.80 (Windows NT 5.1; U; MRA 5.5 (build 02842); ru) Presto/2.7.62 Version/11.00', 84 | 'Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC_Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 85 | 'Opera/9.80 (Windows NT 6.1; U; cs) Presto/2.7.62 Version/11.01', 86 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', 87 | 'Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00', 88 | 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.39 Version/11.00', 89 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MS-RTC LM 8)', 90 | 'Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.7.62 Version/11.01', 91 | 'Mozilla/5.0 (Windows NT 6.1; U; nl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01', 92 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 93 | 'Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11', 94 | 'Opera/9.80 (Windows NT 6.1; WOW64; U; pt) Presto/2.10.229 Version/11.62', 95 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8', 96 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.14 (KHTML, like Gecko) Chrome/24.0.1292.0 Safari/537.14', 97 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36', 98 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; yie8)', 99 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', 100 | 'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; de) Presto/2.9.168 Version/11.52', 101 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36', 102 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)', 103 | 'Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19', 104 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.26 Safari/537.11', 105 | 'Opera/9.80 (Windows NT 5.1; U; zh-tw) Presto/2.8.131 Version/11.10', 106 | 'Opera/9.80 (Windows NT 6.1; U; en-US) Presto/2.7.62 Version/11.01', 107 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 3.0.04506.30)', 108 | 'Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; HTC Desire Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 109 | 'Mozilla/5.0 (Windows NT 5.1) Gecko/20100101 Firefox/14.0 Opera/12.0', 110 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)', 111 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17', 112 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3', 113 | 'Opera/9.80 (X11; Linux i686; U; fr) Presto/2.7.62 Version/11.01', 114 | 'Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00', 115 | 'Opera/9.80 (X11; Linux i686; U; hu) Presto/2.9.168 Version/11.50', 116 | 'Opera/9.80 (X11; Linux x86_64; U; bg) Presto/2.8.131 Version/11.10', 117 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', 118 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2309.372 Safari/537.36', 119 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13', 120 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 121 | 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14', 122 | 'Opera/9.80 (X11; Linux i686; U; it) Presto/2.7.62 Version/11.00', 123 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1', 124 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7', 125 | 'AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.11 Safari/535.19', 126 | 'Opera/12.0(Windows NT 5.1;U;en)Presto/22.9.168 Version/12.00', 127 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 128 | 'Opera/9.80 (X11; Linux i686; U; es-ES) Presto/2.8.131 Version/11.11', 129 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; fr) Opera 11.00', 130 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; InfoPath.3; MS-RTC LM 8; .NET4.0C; .NET4.0E)', 131 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.1; SV1; .NET CLR 2.8.52393; WOW64; en-US)', 132 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13', 133 | 'Opera/9.80 (Windows NT 5.1; U; it) Presto/2.7.62 Version/11.00', 134 | 'Mozilla/5.0 (Linux; U; Android 2.3.3; ko-kr; LG-LU3000 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 135 | 'Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.7.62 Version/11.01', 136 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3', 137 | 'Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.7.62 Version/11.00', 138 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24', 139 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36', 140 | 'Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 141 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3', 142 | 'Opera/12.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.02', 143 | 'Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1;', 144 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; pl) Opera 11.00', 145 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0', 146 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24', 147 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15', 148 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', 149 | 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 150 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', 151 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)', 152 | 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile', 153 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36', 154 | 'Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.10.229 Version/11.62', 155 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)', 156 | 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 157 | 'Opera/9.80 (Windows NT 6.1; Opera Tablet/15165; U; en) Presto/2.8.149 Version/11.1', 158 | 'Opera/9.80 (Windows NT 5.1; U; zh-sg) Presto/2.9.181 Version/12.00', 159 | 'Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.7.62 Version/11.00', 160 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36', 161 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; de) Opera 11.01', 162 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3', 163 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00', 164 | 'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko', 165 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3', 166 | 'Opera/9.80 (Windows NT 6.1; U; ko) Presto/2.7.62 Version/11.00', 167 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13', 168 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7', 169 | 'Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14', 170 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36', 171 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727)', 172 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36', 173 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19', 174 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36', 175 | 'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.37 Version/11.00', 176 | 'Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))', 177 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14', 178 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 179 | 'Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 180 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13', 181 | 'Mozilla/5.0 (Windows NT 6.0; U; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00', 182 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; chromeframe/11.0.696.57)', 183 | 'Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11', 184 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; chromeframe/13.0.782.215)', 185 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20', 186 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/19.0.1047.0 Safari/535.22', 187 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; .NET CLR 2.7.58687; SLCC2; Media Center PC 5.0; Zune 3.4; Tablet PC 3.6; InfoPath.3)', 188 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36', 189 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36', 190 | 'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52', 191 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36', 192 | 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36', 193 | 'Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36', 194 | 'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/5.0 Opera 11.11', 195 | 'Mozilla/5.0 (Macintosh; AMD Mac OS X 10_8_2) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/18.6.872', 196 | 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36', 197 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)', 198 | 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-ch; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', 199 | 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36', 200 | 'Mozilla/5.0 (Windows NT 6.0) yi; AppleWebKit/345667.12221 (KHTML, like Gecko) Chrome/23.0.1271.26 Safari/453667.1221', 201 | 'Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)', 202 | 'Opera/9.80 (Windows NT 5.1; U;) Presto/2.7.62 Version/11.01', 203 | 'Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16', 204 | 'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', 205 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21', 206 | 'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; HTC Vision Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 207 | 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)', 208 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17', 209 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1623.0 Safari/537.36', 210 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/4E423F', 211 | 'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.7.62 Version/11.01', 212 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322)', 213 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19', 214 | 'Opera/9.80 (Windows NT 6.1; U; sv) Presto/2.7.62 Version/11.01', 215 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36', 216 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)', 217 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3', 218 | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3', 219 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.0 Safari/537.13', 220 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', 221 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5', 222 | 'Opera/9.80 (X11; Linux x86_64; U; fr) Presto/2.9.168 Version/11.50', 223 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)', 224 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; chromeframe/12.0.742.112)', 225 | 'Mozilla/4.0 (Compatible; MSIE 8.0; Windows NT 5.2; Trident/6.0)', 226 | 'Opera/12.0(Windows NT 5.2;U;en)Presto/22.9.168 Version/12.00', 227 | 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36', 228 | 'Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00', 229 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36', 230 | 'Opera/9.80 (Windows NT 6.0; U; en) Presto/2.8.99 Version/11.10', 231 | 'Opera/9.80 (Windows NT 6.0; U; en) Presto/2.7.39 Version/11.00', 232 | 'Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC_Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari', 233 | 'Mozilla/5.0 (Windows NT 5.1; U; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00', 234 | 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko', 235 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3', 236 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11', 237 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36', 238 | 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C)', 239 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1866.237 Safari/537.36', 240 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; de) Opera 11.51', 241 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11', 242 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11', 243 | 'Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.7.62 Version/11.00', 244 | 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)', 245 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19', 246 | 'Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36', 247 | 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/18.6.872.0 Safari/535.2 UNTRUSTED/1.0 3gpp-gba UNTRUSTED/1.0', 248 | 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)', 249 | 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36', 250 | 'Opera/9.80 (Windows NT 6.1 x64; U; en) Presto/2.7.62 Version/11.00', 251 | 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; T-Mobile myTouch 3G Slide Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 252 | 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21', 253 | 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1500.55 Safari/537.36', 254 | 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6', 255 | 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.142 Chrome/18.0.1025.142 Safari/535.19', 256 | 'Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00' 257 | ] --------------------------------------------------------------------------------