├── 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'
'
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 | ]
--------------------------------------------------------------------------------