From 300241f247dfb4c78b03436030c611fe959a4f74 Mon Sep 17 00:00:00 2001 From: westernmeadow <43891839+westernmeadow@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:13:19 -0700 Subject: [PATCH] preparing test project --- Forums/BestCardingWorld/crawler_selenium.py | 17 +- Forums/CryptBB/crawler_selenium.py | 20 +- Forums/DWForums/__init__.py | 0 Forums/DWForums/captcha.png | Bin 16138 -> 0 bytes Forums/DWForums/crawler_selenium.py | 299 ------------ Forums/DWForums/geckodriver.log | 462 ------------------ Forums/DWForums/parser.py | 330 ------------- Forums/Dread/__init__.py | 0 Forums/Dread/captcha.png | Bin 46961 -> 0 bytes Forums/Dread/crawler_selenium.py | 299 ------------ Forums/Dread/geckodriver.log | 462 ------------------ Forums/Dread/parser.py | 357 -------------- Forums/Helium/captcha.png | Bin 5486 -> 0 bytes Forums/Helium/crawler_selenium.py | 327 ------------- Forums/Helium/parser.py | 248 ---------- Forums/Initialization/desc_transformer.pickle | Bin 508 -> 0 bytes Forums/Initialization/forumsList.txt | 3 - Forums/Initialization/forums_mining.py | 24 +- Forums/Initialization/prepare_parser.py | 20 - MarketPlaces/DarkFox/crawler_selenium.py | 15 +- MarketPlaces/DarkFox/crawler_seleniumtest.py | 192 -------- MarketPlaces/Initialization/marketsList.txt | 6 - MarketPlaces/Initialization/markets_mining.py | 31 +- MarketPlaces/Initialization/prepare_parser.py | 30 -- MarketPlaces/Tor2door/crawler_selenium.py | 12 +- 25 files changed, 43 insertions(+), 3111 deletions(-) delete mode 100644 Forums/DWForums/__init__.py delete mode 100644 Forums/DWForums/captcha.png delete mode 100644 Forums/DWForums/crawler_selenium.py delete mode 100644 Forums/DWForums/geckodriver.log delete mode 100644 Forums/DWForums/parser.py delete mode 100644 Forums/Dread/__init__.py delete mode 100644 Forums/Dread/captcha.png delete mode 100644 Forums/Dread/crawler_selenium.py delete mode 100644 Forums/Dread/geckodriver.log delete mode 100644 Forums/Dread/parser.py delete mode 100644 Forums/Helium/captcha.png delete mode 100644 Forums/Helium/crawler_selenium.py delete mode 100644 Forums/Helium/parser.py delete mode 100644 Forums/Initialization/desc_transformer.pickle delete mode 100644 MarketPlaces/DarkFox/crawler_seleniumtest.py diff --git a/Forums/BestCardingWorld/crawler_selenium.py b/Forums/BestCardingWorld/crawler_selenium.py index 65e2e50..e12b601 100644 --- a/Forums/BestCardingWorld/crawler_selenium.py +++ b/Forums/BestCardingWorld/crawler_selenium.py @@ -32,11 +32,13 @@ def startCrawling(): # driver = getAccess() # if driver != 'down': - # crawlForum(driver) - # new_parse(forumName, False) - new_parse(forumName, False) + # try: + # crawlForum(driver) + # except Exception as e: + # print(driver.current_url, e) + # closetor(driver) - # closetor(driver) + new_parse(forumName, False) # Opens Tor Browser @@ -120,14 +122,11 @@ def createFFDriver(): def getAccess(): url = getFixedURL() driver = createFFDriver() - try: - driver.get(url) return driver - except: - + driver.close() return 'down' @@ -251,7 +250,7 @@ def crawlForum(driver): has_next_page = False except Exception as e: - print(link, e.message) + print(link, e) i += 1 # finalTime = time.time() diff --git a/Forums/CryptBB/crawler_selenium.py b/Forums/CryptBB/crawler_selenium.py index fe234b2..04d536c 100644 --- a/Forums/CryptBB/crawler_selenium.py +++ b/Forums/CryptBB/crawler_selenium.py @@ -34,8 +34,11 @@ def startCrawling(): driver = getAccess() if driver != 'down': - login(driver) - crawlForum(driver) + try: + login(driver) + crawlForum(driver) + except Exception as e: + print(driver.current_url, e) closetor(driver) # new_parse(forumName, False) @@ -116,9 +119,9 @@ def getFixedURL(): # Closes Tor Browser def closetor(driver): - global pid + # global pid # os.system("taskkill /pid " + str(pro.pid)) - os.system("taskkill /t /f /im tor.exe") + # os.system("taskkill /t /f /im tor.exe") print('Closing Tor...') driver.close() time.sleep(3) @@ -165,14 +168,11 @@ def createFFDriver(): def getAccess(): url = getFixedURL() driver = createFFDriver() - try: - driver.get(url) return driver - except: - + driver.close() return 'down' @@ -278,7 +278,7 @@ def crawlForum(driver): try: temp = driver.find_element(by=By.XPATH, value= '/html/body/div/div[2]/div/div[2]/div') - link = temp.find_element_by_class_name('pagination_next').get_attribute('href') + link = temp.find_element(by=By.CLASS_NAME, value='pagination_next').get_attribute('href') if link == "": raise NoSuchElementException @@ -294,7 +294,7 @@ def crawlForum(driver): has_next_page = False except Exception as e: - print(link, e.message) + print(link, e) i += 1 # finalTime = time.time() diff --git a/Forums/DWForums/__init__.py b/Forums/DWForums/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/Forums/DWForums/captcha.png b/Forums/DWForums/captcha.png deleted file mode 100644 index 08e45fc90dc94fa4769002bfd3e8107c35e4acfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16138 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 div:nth-child(4) > div:nth-child(1) > a:nth-child(1)'))) - - -# Returns the name of the website -def getForumName(): - name = 'DWForums' - return name - - -# Return the link of the website -def getFixedURL(): - url = 'http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/' - return url - - -# Closes Tor Browser -def closetor(driver): - global pid - # os.system("taskkill /pid " + str(pro.pid)) - os.system("taskkill /t /f /im tor.exe") - print('Closing Tor...') - driver.close() - time.sleep(3) - return - - -# Creates FireFox 'driver' and configure its 'Profile' -# to use Tor proxy and socket -def createFFDriver(): - file = open('../../path.txt', 'r') - lines = file.readlines() - - ff_binary = FirefoxBinary(lines[0].strip()) - - ff_prof = FirefoxProfile(lines[1].strip()) - ff_prof.set_preference("places.history.enabled", False) - ff_prof.set_preference("privacy.clearOnShutdown.offlineApps", True) - ff_prof.set_preference("privacy.clearOnShutdown.passwords", True) - ff_prof.set_preference("privacy.clearOnShutdown.siteSettings", True) - ff_prof.set_preference("privacy.sanitize.sanitizeOnShutdown", True) - ff_prof.set_preference("signon.rememberSignons", False) - ff_prof.set_preference("network.cookie.lifetimePolicy", 2) - ff_prof.set_preference("network.dns.disablePrefetch", True) - ff_prof.set_preference("network.http.sendRefererHeader", 0) - ff_prof.set_preference("permissions.default.image", 3) - ff_prof.set_preference("browser.download.folderList", 2) - ff_prof.set_preference("browser.download.manager.showWhenStarting", False) - ff_prof.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain") - ff_prof.set_preference('network.proxy.type', 1) - ff_prof.set_preference("network.proxy.socks_version", 5) - ff_prof.set_preference('network.proxy.socks', '127.0.0.1') - ff_prof.set_preference('network.proxy.socks_port', 9150) - ff_prof.set_preference('network.proxy.socks_remote_dns', True) - ff_prof.set_preference("javascript.enabled", True) - ff_prof.update_preferences() - - service = Service(lines[2].strip()) - - driver = webdriver.Firefox(firefox_binary=ff_binary, firefox_profile=ff_prof, service=service) - - return driver - - -def getAccess(): - url = getFixedURL() - driver = createFFDriver() - - try: - - driver.get(url) - return driver - - except: - - return 'down' - - -# Saves the crawled html page -def savePage(page, url): - cleanPage = cleanHTML(page) - filePath = getFullPathName(url) - os.makedirs(os.path.dirname(filePath), exist_ok=True) - open(filePath, 'wb').write(cleanPage.encode('utf-8')) - return - - -# Gets the full path of the page to be saved along with its appropriate file name -def getFullPathName(url): - fileName = getNameFromURL(url) - if isDescriptionLink(url): - fullPath = r'..\DWForums\HTML_Pages\\' + str( - "%02d" % date.today().month) + str("%02d" % date.today().day) + str( - "%04d" % date.today().year) + r'\\' + r'Description\\' + fileName + '.html' - else: - fullPath = r'..\DWForums\HTML_Pages\\' + str( - "%02d" % date.today().month) + str("%02d" % date.today().day) + str( - "%04d" % date.today().year) + r'\\' + r'Listing\\' + fileName + '.html' - return fullPath - - -# Creates the file name from passed URL -def getNameFromURL(url): - global counter - name = ''.join(e for e in url if e.isalnum()) - if (name == ''): - name = str(counter) - counter = counter + 1 - return name - - -def getInterestedLinks(): - links = [] - - # Hacking - links.append('http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/forums/hacking-forum.33/') - # # Beginner Carding and Fraud - links.append('http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/forums/remote-administration.34/') - # # Cracking Tools - links.append('http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/forums/cracking-tools.35/') - # # Cracking Tutorials and Other Methods - error here about file not exisitng - # links.append('http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/forums/cracking-tutorials-other-methods.36/') - # # Combolists and Configs - links.append('http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/forums/combolists-and-configs.58/') - # # Paid Software and Antivirus - links.append('http://dwforumuugiyderhybcpfxmlmoawgq6z3w6hk45nrnem3p7kwszhybad.onion/forums/paid-softwares-and-antivirus.59/') - - return links - - -def crawlForum(driver): - print("Crawling the DWForums forum") - - linksToCrawl = getInterestedLinks() - visited = set(linksToCrawl) - initialTime = time.time() - - i = 0 - count = 0 - while i < len(linksToCrawl): - link = linksToCrawl[i] - print('Crawling :', link) - try: - try: - driver.get(link) - except: - driver.refresh() - html = driver.page_source - savePage(html, link) - - has_next_page = True - while has_next_page: - list = topicPages(html) - for item in list: - itemURL = urlparse.urljoin(baseURL, str(item)) - try: - driver.get(itemURL) - except: - driver.refresh() - savePage(driver.page_source, item) - driver.back() - # comment out - break - - # comment out - if count == 1: - count = 0 - break - - try: - temp = driver.find_element_by_link_text("Next") - link = temp.get_attribute('href') - - if link == "": - raise NoSuchElementException - try: - driver.get(link) - except: - driver.refresh() - html = driver.page_source - savePage(html, link) - count += 1 - - except NoSuchElementException: - has_next_page = False - - except Exception as e: - print(link, e.message) - i += 1 - - # finalTime = time.time() - # print finalTime - initialTime - - input("Crawling DWForums forum done sucessfully. Press ENTER to continue\n") - - -# Returns 'True' if the link is Topic link -def isDescriptionLink(url): - if '/threads/' in url: - return True - return False - - -# Returns True if the link is a listingPage link -def isListingLink(url): - if '/forums/' in url: - return True - return False - - -# calling the parser to define the links -def topicPages(html): - soup = BeautifulSoup(html, "html.parser") - #print(soup.find('div', id="container").find('div', id="content").find('table', {"class": "tborder clear"}).find('tbody').find('tr',{"class": "inline_row"}).find('strong').text) - return dwForums_links_parser(soup) - - -def crawler(): - startCrawling() - # print("Crawling and Parsing BestCardingWorld .... DONE!") diff --git a/Forums/DWForums/geckodriver.log b/Forums/DWForums/geckodriver.log deleted file mode 100644 index d1e3763..0000000 --- a/Forums/DWForums/geckodriver.log +++ /dev/null @@ -1,462 +0,0 @@ -1655762162153 geckodriver INFO Listening on 127.0.0.1:50333 -1655762166434 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50334" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileqUeAAN" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655762166904 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50334/devtools/browser/fb880205-35da-44a4-83b8-a861ce7125f1 -1655762168590 Marionette INFO Listening on port 50341 -1655762169104 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655762207624 Marionette INFO Stopped listening on port 50341 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -1655762207923 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655762990320 geckodriver INFO Listening on 127.0.0.1:50884 -1655762994595 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50885" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileurjxEe" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655762995244 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50885/devtools/browser/36503f58-7ab7-4188-81b0-fa1b81f32c0a -1655762996997 Marionette INFO Listening on port 50890 -JavaScript error: resource://gre/modules/ExtensionContent.jsm, line 575: TypeError: PrecompiledScript.executeInGlobal: Argument 1 is not an object. -1655762997277 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763083091 Marionette INFO Stopped listening on port 50890 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655763083216 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655763089557 geckodriver INFO Listening on 127.0.0.1:50923 -1655763093759 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50924" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile5mY1qq" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655763094208 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50924/devtools/browser/68ce2df9-521f-4258-94f7-c2e2b199701a -1655763095918 Marionette INFO Listening on port 50929 -1655763096408 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763143935 Marionette INFO Stopped listening on port 50929 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655763144495 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655763166975 geckodriver INFO Listening on 127.0.0.1:50947 -1655763171175 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50948" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofilenAGZM5" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655763171719 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50948/devtools/browser/0b9966bd-0cec-45cc-9d11-02a2580233f0 -1655763173307 Marionette INFO Listening on port 50953 -1655763173368 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763208922 Marionette INFO Stopped listening on port 50953 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -JavaScript error: chrome://remote/content/marionette/cert.js, line 55: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICertOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData] -!!! error running onStopped callback: TypeError: callback is not a function -1655763209261 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655763387409 geckodriver INFO Listening on 127.0.0.1:49752 -1655763391806 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "49753" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofilevAHJSJ" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655763392827 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -DevTools listening on ws://localhost:49753/devtools/browser/7fe49a16-940f-4ee8-9a2f-48739a92db78 -1655763394700 Marionette INFO Listening on port 49759 -1655763395103 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763430848 Marionette INFO Stopped listening on port 49759 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -JavaScript error: chrome://remote/content/marionette/cert.js, line 55: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICertOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData] -!!! error running onStopped callback: TypeError: callback is not a function -1655763431145 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655765589286 geckodriver INFO Listening on 127.0.0.1:50102 -1655765621677 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50103" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile8ecUpb" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655765622149 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -DevTools listening on ws://localhost:50103/devtools/browser/e5a916fc-987c-43d4-9c12-9c9b88cca242 -1655765623776 Marionette INFO Listening on port 50109 -1655765623892 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655766125168 Marionette INFO Stopped listening on port 50109 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655766125303 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655766505099 geckodriver INFO Listening on 127.0.0.1:50156 -1655766509351 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50157" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileVqvmzh" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655766509876 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50157/devtools/browser/13084c14-64d3-48a5-8b99-4c514e961d4f -1655766511328 Marionette INFO Listening on port 50162 -1655766511395 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655766552298 Marionette INFO Stopped listening on port 50162 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -JavaScript error: chrome://remote/content/marionette/cert.js, line 55: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICertOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData] -!!! error running onStopped callback: TypeError: callback is not a function -1655766552578 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767657126 geckodriver INFO Listening on 127.0.0.1:50257 -1655767661375 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50258" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileB9Dzeh" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767661843 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50258/devtools/browser/867cd318-6430-4b3f-9b63-8c6bdf17636a -1655767663330 Marionette INFO Listening on port 50263 -1655767663431 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767668263 Marionette INFO Stopped listening on port 50263 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -1655767668591 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767689480 geckodriver INFO Listening on 127.0.0.1:50276 -1655767693635 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50277" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile8ZOQe7" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767694215 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50277/devtools/browser/a70a3f5b-19af-4a68-99c8-c46086ba9599 -1655767695725 Marionette INFO Listening on port 50282 -1655767695830 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767701272 Marionette INFO Stopped listening on port 50282 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767701594 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767791360 geckodriver INFO Listening on 127.0.0.1:50296 -1655767795575 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50297" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile4GEqBr" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767796001 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50297/devtools/browser/e2d4e57a-16ce-429d-9804-e9e391199ddf -1655767797534 Marionette INFO Listening on port 50302 -1655767797661 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767802833 Marionette INFO Stopped listening on port 50302 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767803151 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767902908 geckodriver INFO Listening on 127.0.0.1:50320 -1655767907009 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50321" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileqlJ8ZA" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767907484 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -DevTools listening on ws://localhost:50321/devtools/browser/49e77669-01dd-447e-a804-36d42b3400cf -1655767908782 Marionette INFO Listening on port 50326 -1655767909069 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767916218 Marionette INFO Stopped listening on port 50326 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767916523 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767958348 geckodriver INFO Listening on 127.0.0.1:50340 -1655767962557 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50341" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofilekpCdfs" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767963032 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50341/devtools/browser/b4d1728c-d26f-4537-adc2-5c954b171b13 -1655767964591 Marionette INFO Listening on port 50346 -1655767964633 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767973210 Marionette INFO Stopped listening on port 50346 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767973501 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767998084 geckodriver INFO Listening on 127.0.0.1:50358 -1655768002314 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50359" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileujYNBj" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655768002757 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50359/devtools/browser/04112c45-204d-43f1-9615-34782fd06632 -1655768004165 Marionette INFO Listening on port 50364 -1655768004375 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655768009787 Marionette INFO Stopped listening on port 50364 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] - -###!!! [Child][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -1655768010100 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655768083966 geckodriver INFO Listening on 127.0.0.1:50386 -1655768088234 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50387" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile39Pl1f" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655768088664 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50387/devtools/browser/3d6cda42-cb60-4c67-8d76-1d186a51887f -1655768090263 Marionette INFO Listening on port 50392 -1655768090299 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655768091655 Marionette INFO Stopped listening on port 50392 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][MessageChannel] Error: (msgtype=0x390076,name=PContent::Msg_DestroyBrowsingContextGroup) Closed channel: cannot send/recv - - -###!!! [Parent][MessageChannel] Error: (msgtype=0x390076,name=PContent::Msg_DestroyBrowsingContextGroup) Closed channel: cannot send/recv - - -###!!! [Parent][MessageChannel] Error: (msgtype=0x390076,name=PContent::Msg_DestroyBrowsingContextGroup) Closed channel: cannot send/recv - -1655768092659 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655768101201 geckodriver INFO Listening on 127.0.0.1:50404 -1655768105373 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50405" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile2YRGSz" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655768105853 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50405/devtools/browser/9c4a4d71-25ff-4980-a54d-8545d6200790 -1655768107431 Marionette INFO Listening on port 50410 -1655768107530 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655768119155 Marionette INFO Stopped listening on port 50410 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655768119438 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655768229472 geckodriver INFO Listening on 127.0.0.1:50431 -1655768233458 webdriver::server WARN Rejected request with missing Host header diff --git a/Forums/DWForums/parser.py b/Forums/DWForums/parser.py deleted file mode 100644 index 217038b..0000000 --- a/Forums/DWForums/parser.py +++ /dev/null @@ -1,330 +0,0 @@ -__author__ = 'DarkWeb' - -# Here, we are importing the auxiliary functions to clean or convert data -from Forums.Utilities.utilities import * -from datetime import date -from datetime import timedelta -import re - -# Here, we are importing BeautifulSoup to search through the HTML tree -from bs4 import BeautifulSoup - -# This is the method to parse the Description Pages (one page to each topic in the Listing Pages) - -def dwForums_description_parser(soup): - - # Fields to be parsed - - topic = "-1" # topic name - user = [] # all users of each post - addDate = [] # all dated of each post - feedback = [] # all feedbacks of each vendor (this was found in just one Forum and with a number format) - status = [] # all user's authority in each post such as (adm, member, dangerous) - reputation = [] # all users's karma in each post (usually found as a number) - sign = [] # all user's signature in each post (usually a standard message after the content of the post) - post = [] # all messages of each post - interest = [] # all user's interest in each post - - # Finding the topic (should be just one coming from the Listing Page) - - li = soup.find("h1", {"class": "p-title-value"}) - - topic = li.text - topic = topic.replace(u'\xa0', ' ') - topic = topic.replace(",","") - topic = topic.replace("\n","") - topic = cleanString(topic.strip()) - # print(topic) - # Finding the repeated tag that corresponds to the listing of posts - - # posts = soup.find("form", {"name": "quickModForm"}).findAll('div', {"class": "windowbg"}) + \ - # soup.find("form", {"name": "quickModForm"}).findAll('div', {"class": "windowbg2"}) - - try: - posts = soup.find('div', {"class": "js-replyNewMessageContainer"}).find_all( - 'article', {"class": "js-post"}, recursive=False) - # print(len(posts)) - - # For each message (post), get all the fields we are interested to: - - for ipost in posts: - - # Finding a first level of the HTML page - - # post_wrapper = ipost.find('div', {"class": "post_wrapper"}).find('div', {"class": "poster"}) - post_wrapper = ipost.find('h4', {"class": "message-name"}) - # Finding the author (user) of the post - - # author = post_wrapper.find('h4') - author = post_wrapper.text.strip() - # print("author " + author) - user.append(cleanString(author)) # Remember to clean the problematic characters - - # Finding the status of the author - - - - # Testing here two possibilities to find this status and combine them - # if ipost.find('h5', {"class": "deleted_post_author"}): - # status.append(-1) - # interest.append(-1) - # reputation.append(-1) - # addDate.append(-1) - # post.append("THIS POST HAS BEEN REMOVED!") - # sign.append(-1) - # feedback.append(-1) - # continue - - # CryptBB does have membergroup and postgroup - - membergroup = ipost.find('h5', {"class": "userTitle"}) - # DWForums doesnt have postgroups - postgroup = None - if membergroup != None: - membergroup = membergroup.text.strip() - if postgroup != None: - postgroup = postgroup.text.strip() - membergroup = membergroup + " - " + postgroup - else: - if postgroup != None: - membergroup = postgroup.text.strip() - else: - membergroup = "-1" - - status.append(cleanString(membergroup)) - # print("status " + cleanString(membergroup)) - # Finding the interest of the author - # DWForums does not have blurb - blurb = ipost.find('li', {"class": "blurb"}) - if blurb != None: - blurb = blurb.text.strip() - else: - blurb = "-1" - interest.append(cleanString(blurb)) - - # Finding the reputation of the user - # CryptBB does have reputation - author_stats = ipost.find('div', {"class": "message-userExtras"}) - if author_stats != None: - karma = author_stats.find_all('dl', {"class": "pairs"})[2] - else: - karma = None - if karma != None: - karma = karma.text - karma = karma.replace("Reaction score","") - karma = karma.replace(":", "") - karma = karma.strip() - else: - karma = "-1" - reputation.append(cleanString(karma)) - # print("karma " + cleanString(karma)) - # Getting here another good tag to find the post date, post content and users' signature - - postarea = ipost.find('div', {"class": "message-attribution-main"}) - - dt = postarea.find('time', {"class": "u-dt"})['datetime'] - # dt = dt.strip().split() - dt = dt.strip()[:16] - dt = dt.replace("T",", ") - day=date.today() - if "Yesterday" in dt: - yesterday = day - timedelta(days=1) - yesterday = yesterday.strftime('%m-%d-%Y') - stime = dt.replace('Yesterday,','').strip() - date_time_obj = yesterday+ ', '+stime - date_time_obj = datetime.strptime(date_time_obj,'%m-%d-%Y, %H:%M') - elif "hours ago" in dt: - day = day.strftime('%m-%d-%Y') - date_time_obj = postarea.find('span', {"class": "post_date"}).find('span')['title'] - date_time_obj = datetime.strptime(date_time_obj, '%m-%d-%Y, %H:%M') - else: - date_time_obj = datetime.strptime(dt, '%Y-%m-%d, %H:%M') - stime = date_time_obj.strftime('%b %d, %Y') - sdate = date_time_obj.strftime('%I:%M %p') - - - addDate.append(date_time_obj) - # print("date " + str(date_time_obj)) - # Finding the date of the post - # date_time_obj = datetime.strptime(dt, '%a %b %d, %Y %I:%M %p') - # smalltext = postarea.find('div', {"class": "flow_hidden"}).find('div', {"class": "keyinfo"})\ - # .find('div', {"class": "smalltext"}) - # sdatetime = smalltext.text - # sdatetime = sdatetime.replace(u"\xab","") # Removing unnecessary characters - # sdatetime = sdatetime.replace(u"\xbb","") # Removing unnecessary characters - # sdatetime = sdatetime.split("on: ") # Removing unnecessary characters - # sdatetime = sdatetime[1].strip() - # stime = sdatetime[:-12:-1] # Finding the time of the post - # stime = stime[::-1] - # sdate = sdatetime.replace(stime,"") # Finding the date of the post - # sdate = sdate.replace(",","") - # sdate = sdate.strip() - - # Covert the date of the post that can be informed as: "12 February 2016", "today", "yesterday". We need - # a date format here as "mm/dd/yyyy" - - # addDate.append(convertDate(sdate,"english", crawlerDate) + " " + stime) - - # Finding the post - - inner = ipost.find('article', {"class": "message-body"}) - inner = inner.text.strip() - # print(inner) - post.append(cleanString(inner)) - - # Finding the users's signature - - # signature = ipost.find('div', {"class": "post_wrapper"}).find('div', {"class": "moderatorbar"}).find('div', {"class": "signature"}) - signature = ipost.find('aside', {"class": "message-signature"}) - if signature != None: - signature = signature.text.strip() - # print(signature) - else: - signature = "-1" - sign.append(cleanString(signature)) - - # As no information about users's feedback was found, just assign "-1" to the variable - - feedback.append("-1") - except: - print("error when parsing posts") - # if soup.find('td', {"class": "trow1"}).text == " You do not have permission to access this page. ": - # user.append("-1") - # status.append(-1) - # interest.append(-1) - # reputation.append(-1) - # addDate.append(-1) - # post.append("NO ACCESS TO THIS PAGE!") - # sign.append(-1) - # feedback.append(-1) - - - # Populate the final variable (this should be a list with all fields scraped) - - row = (topic, post, user, addDate, feedback, status, reputation, sign, interest) - - # Sending the results - - return row - -# This is the method to parse the Listing Pages (one page with many posts) - -def dwForums_listing_parser(soup): - - board = "-1" # board name (the previous level of the topic in the Forum categorization tree. - # For instance: Security/Malware/Tools to hack Facebook. The board here should be Malware) - - nm = 0 # this variable should receive the number of topics - topic = [] # all topics - user = [] # all users of each topic - post = [] # number of posts of each topic - view = [] # number of views of each topic - addDate = [] # when the topic was created (difficult to find) - href = [] # this variable should receive all cleaned urls (we will use this to do the marge between - # Listing and Description pages) - - # Finding the board (should be just one) - - board = soup.find('h1', {"class": "p-title-value"}).text - board = cleanString(board.strip()) - - # Finding the repeated tag that corresponds to the listing of topics - - regex = re.compile('.*structItem--thread.*') - itopics = soup.find_all("div", {"class": regex}) - index = 0 - for itopic in itopics: - - # For each topic found, the structure to get the rest of the information can be of two types. Testing all of them - # to don't miss any topic - - - # tds = itopic.findAll('td', {"class": "subject stickybg2"}) - # - # if len(tds) > 0: - # tag.append("strong") - # tag.append("subject stickybg2") - # tag.append("stats stickybg") - # else: - # tds = itopic.findAll('td', {"class": "subject windowbg2"}) - # if len(tds) > 0: - # tag.append("span") - # tag.append("subject windowbg2") - # tag.append("stats windowbg") - - # Adding the topic to the topic list - topics = itopic.find("div", {"class": "structItem-title"}).text - topics = topics.replace(",", "") - topics = topics.replace("\n", "") - topic.append(cleanString(topics.strip())) - - # Counting how many topics we have found so far - - nm = len(topic) - - # Adding the url to the list of urls - link = itopic.select_one('a[href^="/threads/"]') - link = link['href'] - link = cleanLink(link) - href.append(link) - - # Finding the author of the topic - ps = itopic.find('a', {"class": "username"}).text - author = ps.strip() - user.append(cleanString(author)) - - # Finding the number of replies - meta = itopic.find("div", {"class": "structItem-cell--meta"}) - meta = meta.find_all("dl") - posts = meta[0].find("dd").text - post.append(cleanString(posts)) - - # Finding the number of Views - tview = meta[1].find("dd").text - view.append(cleanString(tview)) - - - - # If no information about when the topic was added, just assign "-1" to the variable - minor = itopic.find("div", {"class": "structItem-minor"}) - dt = minor.find('time')['datetime'] - dt = dt.strip()[:16] - dt = dt.replace("T", ", ") - day = date.today() - if "Yesterday" in dt: - yesterday = day - timedelta(days=1) - yesterday = yesterday.strftime('%m-%d-%Y') - stime = dt.replace('Yesterday,', '').strip() - date_time_obj = yesterday + ', ' + stime - date_time_obj = datetime.strptime(date_time_obj, '%m-%d-%Y, %H:%M') - else: - date_time_obj = datetime.strptime(dt, '%Y-%m-%d, %H:%M') - stime = date_time_obj.strftime('%b %d, %Y') - sdate = date_time_obj.strftime('%I:%M %p') - addDate.append(date_time_obj) - - - - - index += 1 - return organizeTopics("DWForums", nm, topic, board, view, post, user, addDate, href) - - - -def dwForums_links_parser(soup): - - # Returning all links that should be visited by the Crawler - - href = [] - #print(soup.find('table', {"class": "tborder clear"}).find( - # 'tbody').find_all('tr', {"class": "inline_row"})) - regex = re.compile('.*structItem--thread.*') - listing = soup.find_all("div", {"class": regex}) - - for a in listing: - link = a.select_one('a[href^="/threads/"]') - link = link['href'] - - href.append(link) - - return href \ No newline at end of file diff --git a/Forums/Dread/__init__.py b/Forums/Dread/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/Forums/Dread/captcha.png b/Forums/Dread/captcha.png deleted file mode 100644 index 34dc4ace520dac1b2d8738676f8aa5d957222740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46961 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

!Kp3W+`fpzi)S&^UQTCmDuvngK`{_@ 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

v zIW$oxFXr%Q0Y^rn93PEvWH`dko;Y)D#Z1&y(OcS0M|?61%3&GG z$N=?9R$deAq%x3-G3BSc*jrD+BR}UcmpteZa>yCF&z`_*E5NNh=?m{>rk->|y3XlX zw9EeAS$g~b1fVHznhmIAbSPb?h4ZBHI&&(^cUqN+C}p-Z=qMrNOe#arRm9!ZBs{eg zdFv?lHd5wqqTJs~WkA-4stI*dr@-169#F!7AzGvIU`2auf{yqk9fia6Rdg`j+0Bs+ z6I?j6lW%?IKECqw5uUqyhI4y+xns7T{o`e9?Js1utAN?=V&-})*wk0UbVoH~4OI+O z)zeejPFLY5odr`_K*|F!^7Acw%KA_rwV@t4@dN+04HS9nDD>2(!IVo! zWwH#n0;b2B@|uxF(lkb+8>7*cRzIE(r}blp^AiPV8d8HzzC>npEQm`N&y?C0Jp1y# zQz3q3oh0N+5^>43Q`xK5q_h4^oZ3!hpo8i_C)L3&YC}ELh5F=}H9SCLWQgYI2rbbO z1==wg-1xZcZDSL3#1)9MtTR59_3H^av5Ctdw#CM1jgHb19idtAl8q@Z8SbSf)Sb@8 zD+2BEGp@v!Mc#T63Y2koWfqw7bMCVhr9Gz08cVMR&znX{gPG+u7f5rbx`6*Tit+z2 zfTrxKap|IIs7&|CW)7x{`>Ayj8Pt?VEhCbZOl2meOdDY zfo^JoJ=BJJsSowh5bmcTJU~N4_OwmWA;pGiiVo8p9i}-lL~~>~W6JNz5DwB99+17G z;vwt8z0`zys7ZUt43K61=CrpgR=j1ZmKkxD6Lyx(Pk`)&ipPv*ff-t`w=O^D*PR0i59 z544f=w`Kv^NRg+WB5z&VTNb!0m2y!A%7DE%17=nNlntgeouzx`Kj-t{w9k{}PEDeH zoKO2F9#9$5`EjXEvZ2#2m@PGV7K3V0K()>X)n_XrU@uO4)sQnOXaBBB3Y5gE&{IoM z8rTL(yp5E2n`ChPGPp^93fz>nE4J|0na`K|74x;EyFZnLcx?sv>Z(xcmvV7E=qSc-PvEr|%9fSrM^DylHpG!I4Kyz4&~`~ zmJxEKpv;tsJk~gFYYdkymM#~~pFBz>Kwiv7PdX7=zD#d=ehAP7vO9LxITZk|1T}xzO9i>W0kg;$&@hVrWVu6(t zab{aGZ7CRK?^r^>UWDIXgkSkVk)bTaYl|z{cqHv9Gx6p8siRCMXkqC{Q64m8{?AfZ z-ag79t&iLOp#Yr^sePU&kUfJV3skrA%}PE0o_TYpHggb%0;|IkNdxP$#&BC>>2Sbn zPozDpKPxl{EC>>mxzPb8p6`h5KGQ~|$#u;`k74EDoQ1sv@0ee4{3A^|-<;Q!daLDx*S;{*PWorg~x zpg+3iIX^M>qf-SRI}e{YKtJwp$~BvBA2$!z0KI0{0KEq2Kdyb;JX{0xnq33*8leBU z_HpxY4bW?L4bW?V{^Q!m&BHZ7uh}&~uL1gxYacfc*8sg{pLjt3UnNt+h=hC?{{R30 M07*qoM6N<$f&eRQ [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50334/devtools/browser/fb880205-35da-44a4-83b8-a861ce7125f1 -1655762168590 Marionette INFO Listening on port 50341 -1655762169104 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655762207624 Marionette INFO Stopped listening on port 50341 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -1655762207923 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655762990320 geckodriver INFO Listening on 127.0.0.1:50884 -1655762994595 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50885" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileurjxEe" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655762995244 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50885/devtools/browser/36503f58-7ab7-4188-81b0-fa1b81f32c0a -1655762996997 Marionette INFO Listening on port 50890 -JavaScript error: resource://gre/modules/ExtensionContent.jsm, line 575: TypeError: PrecompiledScript.executeInGlobal: Argument 1 is not an object. -1655762997277 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763083091 Marionette INFO Stopped listening on port 50890 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655763083216 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655763089557 geckodriver INFO Listening on 127.0.0.1:50923 -1655763093759 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50924" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile5mY1qq" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655763094208 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50924/devtools/browser/68ce2df9-521f-4258-94f7-c2e2b199701a -1655763095918 Marionette INFO Listening on port 50929 -1655763096408 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763143935 Marionette INFO Stopped listening on port 50929 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655763144495 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655763166975 geckodriver INFO Listening on 127.0.0.1:50947 -1655763171175 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50948" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofilenAGZM5" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655763171719 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50948/devtools/browser/0b9966bd-0cec-45cc-9d11-02a2580233f0 -1655763173307 Marionette INFO Listening on port 50953 -1655763173368 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763208922 Marionette INFO Stopped listening on port 50953 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -JavaScript error: chrome://remote/content/marionette/cert.js, line 55: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICertOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData] -!!! error running onStopped callback: TypeError: callback is not a function -1655763209261 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655763387409 geckodriver INFO Listening on 127.0.0.1:49752 -1655763391806 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "49753" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofilevAHJSJ" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655763392827 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -DevTools listening on ws://localhost:49753/devtools/browser/7fe49a16-940f-4ee8-9a2f-48739a92db78 -1655763394700 Marionette INFO Listening on port 49759 -1655763395103 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655763430848 Marionette INFO Stopped listening on port 49759 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -JavaScript error: chrome://remote/content/marionette/cert.js, line 55: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICertOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData] -!!! error running onStopped callback: TypeError: callback is not a function -1655763431145 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655765589286 geckodriver INFO Listening on 127.0.0.1:50102 -1655765621677 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50103" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile8ecUpb" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655765622149 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -DevTools listening on ws://localhost:50103/devtools/browser/e5a916fc-987c-43d4-9c12-9c9b88cca242 -1655765623776 Marionette INFO Listening on port 50109 -1655765623892 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655766125168 Marionette INFO Stopped listening on port 50109 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655766125303 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655766505099 geckodriver INFO Listening on 127.0.0.1:50156 -1655766509351 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50157" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileVqvmzh" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655766509876 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50157/devtools/browser/13084c14-64d3-48a5-8b99-4c514e961d4f -1655766511328 Marionette INFO Listening on port 50162 -1655766511395 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655766552298 Marionette INFO Stopped listening on port 50162 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -JavaScript error: chrome://remote/content/marionette/cert.js, line 55: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICertOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData] -!!! error running onStopped callback: TypeError: callback is not a function -1655766552578 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767657126 geckodriver INFO Listening on 127.0.0.1:50257 -1655767661375 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50258" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileB9Dzeh" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767661843 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50258/devtools/browser/867cd318-6430-4b3f-9b63-8c6bdf17636a -1655767663330 Marionette INFO Listening on port 50263 -1655767663431 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767668263 Marionette INFO Stopped listening on port 50263 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -1655767668591 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767689480 geckodriver INFO Listening on 127.0.0.1:50276 -1655767693635 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50277" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile8ZOQe7" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767694215 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50277/devtools/browser/a70a3f5b-19af-4a68-99c8-c46086ba9599 -1655767695725 Marionette INFO Listening on port 50282 -1655767695830 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767701272 Marionette INFO Stopped listening on port 50282 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767701594 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767791360 geckodriver INFO Listening on 127.0.0.1:50296 -1655767795575 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50297" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile4GEqBr" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767796001 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50297/devtools/browser/e2d4e57a-16ce-429d-9804-e9e391199ddf -1655767797534 Marionette INFO Listening on port 50302 -1655767797661 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767802833 Marionette INFO Stopped listening on port 50302 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767803151 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767902908 geckodriver INFO Listening on 127.0.0.1:50320 -1655767907009 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50321" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileqlJ8ZA" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767907484 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -DevTools listening on ws://localhost:50321/devtools/browser/49e77669-01dd-447e-a804-36d42b3400cf -1655767908782 Marionette INFO Listening on port 50326 -1655767909069 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767916218 Marionette INFO Stopped listening on port 50326 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767916523 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767958348 geckodriver INFO Listening on 127.0.0.1:50340 -1655767962557 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50341" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofilekpCdfs" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655767963032 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50341/devtools/browser/b4d1728c-d26f-4537-adc2-5c954b171b13 -1655767964591 Marionette INFO Listening on port 50346 -1655767964633 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655767973210 Marionette INFO Stopped listening on port 50346 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655767973501 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655767998084 geckodriver INFO Listening on 127.0.0.1:50358 -1655768002314 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50359" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofileujYNBj" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655768002757 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50359/devtools/browser/04112c45-204d-43f1-9615-34782fd06632 -1655768004165 Marionette INFO Listening on port 50364 -1655768004375 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655768009787 Marionette INFO Stopped listening on port 50364 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] - -###!!! [Child][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost - -1655768010100 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655768083966 geckodriver INFO Listening on 127.0.0.1:50386 -1655768088234 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50387" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile39Pl1f" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655768088664 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50387/devtools/browser/3d6cda42-cb60-4c67-8d76-1d186a51887f -1655768090263 Marionette INFO Listening on port 50392 -1655768090299 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655768091655 Marionette INFO Stopped listening on port 50392 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function - -###!!! [Parent][MessageChannel] Error: (msgtype=0x390076,name=PContent::Msg_DestroyBrowsingContextGroup) Closed channel: cannot send/recv - - -###!!! [Parent][MessageChannel] Error: (msgtype=0x390076,name=PContent::Msg_DestroyBrowsingContextGroup) Closed channel: cannot send/recv - - -###!!! [Parent][MessageChannel] Error: (msgtype=0x390076,name=PContent::Msg_DestroyBrowsingContextGroup) Closed channel: cannot send/recv - -1655768092659 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655768101201 geckodriver INFO Listening on 127.0.0.1:50404 -1655768105373 mozrunner::runner INFO Running command: "C:\\Users\\CALSysLab\\Desktop\\Tor Browser\\Browser\\firefox.exe" "--marionette" "--remote-debugging-port" "50405" "--remote-allow-hosts" "localhost" "-no-remote" "-profile" "C:\\Users\\CALSYS~1\\AppData\\Local\\Temp\\rust_mozprofile2YRGSz" -console.log: "TorSettings: loadFromPrefs()" -console.log: "TorConnect: Init" -console.log: "TorConnect: observed profile-after-change" -console.log: "TorConnect: observing topic 'TorBootstrapStatus'" -console.log: "TorConnect: observing topic 'TorBootstrapError'" -console.log: "TorConnect: observing topic 'TorProcessExited'" -console.log: "TorConnect: observing topic 'TorLogHasWarnOrErr'" -console.log: "TorConnect: observing topic 'torsettings:ready'" -console.log: "TorSettings: observed profile-after-change" -1655768105853 Marionette INFO Marionette enabled -console.log: "TorConnect: will load after bootstrap => [about:blank]" -JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. -console.error: "Could not load engine google@search.mozilla.org: Error: Extension is invalid" -JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 161: TypeError: Cc[aContract] is undefined -console.error: "Could not load engine blockchair-onion@search.mozilla.org: Error: Extension is invalid" -DevTools listening on ws://localhost:50405/devtools/browser/9c4a4d71-25ff-4980-a54d-8545d6200790 -1655768107431 Marionette INFO Listening on port 50410 -1655768107530 RemoteAgent WARN TLS certificate errors will be ignored for this session -1655768119155 Marionette INFO Stopped listening on port 50410 -JavaScript error: resource:///modules/Interactions.jsm, line 209: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIUserIdleService.removeIdleObserver] -!!! error running onStopped callback: TypeError: callback is not a function -1655768119438 RemoteAgent ERROR unable to stop listener: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIWindowMediator.getEnumerator]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/cdp/observers/TargetObserver.jsm :: stop :: line 64" data: no] Stack trace: stop()@TargetObserver.jsm:64 -unwatchForTabs()@TargetList.jsm:70 -unwatchForTargets()@TargetList.jsm:37 -destructor()@TargetList.jsm:109 -stop()@CDP.jsm:104 -close()@RemoteAgent.jsm:138 -1655768229472 geckodriver INFO Listening on 127.0.0.1:50431 -1655768233458 webdriver::server WARN Rejected request with missing Host header diff --git a/Forums/Dread/parser.py b/Forums/Dread/parser.py deleted file mode 100644 index c84f794..0000000 --- a/Forums/Dread/parser.py +++ /dev/null @@ -1,357 +0,0 @@ -__author__ = 'DarkWeb' - -# Here, we are importing the auxiliary functions to clean or convert data -import datetime - -from Forums.Utilities.utilities import * -from datetime import date -from datetime import timedelta -import re -import traceback -# Here, we are importing BeautifulSoup to search through the HTML tree -from bs4 import BeautifulSoup - -# This is the method to parse the Description Pages (one page to each topic in the Listing Pages) - -def dread_description_parser(soup): - - # Fields to be parsed - - topic = "-1" # topic name - user = [] # all users of each post - addDate = [] # all dated of each post - feedback = [] # all feedbacks of each vendor (this was found in just one Forum and with a number format) - status = [] # all user's authority in each post such as (adm, member, dangerous) - reputation = [] # all users's karma in each post (usually found as a number) - sign = [] # all user's signature in each post (usually a standard message after the content of the post) - post = [] # all messages of each post - interest = [] # all user's interest in each post - - # Finding the topic (should be just one coming from the Listing Page) - container = soup.find('div', {"class": "content"}) - li = container.find("a", {"class": "title"}) - if li == None: - return None - topic = li.text - topic = topic.replace(u'\xa0', ' ') - topic = topic.replace(",","") - topic = topic.replace("\n","") - topic = cleanString(topic.strip()) - # print(topic) - # Finding the repeated tag that corresponds to the listing of posts - - # posts = soup.find("form", {"name": "quickModForm"}).findAll('div', {"class": "windowbg"}) + \ - # soup.find("form", {"name": "quickModForm"}).findAll('div', {"class": "windowbg2"}) - - try: - # putting the initial post data since it is separated from comments - # author name - init_post = container.find('div', {"class": "item"}) - author = init_post.find('div', {"class": "author"}).select_one('a[href^="/u/"]').text - flair = init_post.find('div', {"class": "author"}).find("span", {"class": "flair"}) - try: - flair = flair.text.strip() - author = author.replace(flair, '') - except: - pass - author = author.strip() - user.append(cleanString(author)) - # status - flair = init_post.find("span", {"class": "flair"}) - if flair != None: - flair = flair.text.strip() - else: - flair = "-1" - status.append(cleanString(flair)) - # no blurb - interest.append(-1) - # points for post - karma = init_post.find("div", {"class": "voteCount"}) - if karma != None: - karma = karma.text - karma = karma.replace("points", "") - karma = karma.replace(":", "") - karma = karma.strip() - else: - karma = "-1" - reputation.append(cleanString(karma)) - # date - spans = init_post.find('div', {"class": "author"}).find('span', recursive=False) - dt = spans['title'] - month = find_month(dt) - split_text = dt.split() - day = int(re.search(r'\d+', split_text[0]).group()) - year = int(split_text[2]) - hm = re.findall(r'\d+', split_text[-1]) - hm[0] = int(hm[0]) - hm[1] = int(hm[1]) - date_time_obj = datetime(year, month, day, hour=hm[0], minute=hm[1]) - addDate.append(date_time_obj) - - # content - inner = init_post.find("div", {"class": "postContent"}) - inner = inner.text.strip() - post.append(cleanString(inner)) - - # no signature - sign.append(-1) - # no feedback - feedback.append(-1) - - - comments = soup.find('div', {"class": "postComments"}) - if comments == None: - row = (topic, post, user, addDate, feedback, status, reputation, sign, interest) - return row - else: - comments = soup.find('div', {"class": "postComments"}).find_all('div', "comment") - # print(len(posts)) - - # For each message (post), get all the fields we are interested to: - - for ipost in comments: - - # Finding a first level of the HTML page - - # post_wrapper = ipost.find('div', {"class": "post_wrapper"}).find('div', {"class": "poster"}) - cc = ipost.find('div', {"class": "commentContent"}) - - post_wrapper = cc.find('a', {"class": "username"}).text - flair = cc.find("span", {"class": "flair"}) - try: - flair = flair.text.strip() - post_wrapper = post_wrapper.replace(flair, '') - except: - pass - author = post_wrapper.strip() - user.append(cleanString(author)) - - - # Finding the status of the author - - # Dread does not have membergroup and postgroup, but it has flair, similar enough - - - postgroup = None - if flair != None: - if postgroup != None: - postgroup = postgroup.text.strip() - flair = flair + " - " + postgroup - else: - if postgroup != None: - flair = postgroup.text.strip() - else: - flair = "-1" - - status.append(cleanString(flair)) - # print("status " + cleanString(membergroup)) - # Finding the interest of the author - # Dread does not have blurb - - interest.append(-1) - - # Finding the reputation of the user - # Dread doesn't have reputation per user, but instead each post has its own point system - karma = cc.find('div', {"class": "votes"}) - - if karma != None: - karma = karma.text - karma = karma.replace("points","") - karma = karma.replace(":", "") - karma = karma.strip() - else: - karma = "-1" - reputation.append(cleanString(karma)) - # print("karma " + cleanString(karma)) - # Getting here another good tag to find the post date, post content and users' signature - - postarea = ipost.find('div', {"class": "timestamp"}).find('span', recursive=False) - dt = postarea['title'] - month = find_month(dt) - split_text = dt.split() - day = int(re.search(r'\d+', split_text[0]).group()) - year = int(split_text[2]) - hm = re.findall(r'\d+', split_text[-1]) - hm[0] = int(hm[0]) - hm[1] = int(hm[1]) - date_time_obj = datetime(year, month, day, hour=hm[0], minute=hm[1]) - addDate.append(date_time_obj) - - - - # Finding the post - - inner = ipost.find('div', {"class": "commentBody"}) - inner = inner.text.strip() - # print(inner) - post.append(cleanString(inner)) - - # No signature for Dread - - sign.append(-1) - - # As no information about users's feedback was found, just assign "-1" to the variable - - feedback.append("-1") - except : - traceback.print_exc() - # if soup.find('td', {"class": "trow1"}).text == " You do not have permission to access this page. ": - # user.append("-1") - # status.append(-1) - # interest.append(-1) - # reputation.append(-1) - # addDate.append(-1) - # post.append("NO ACCESS TO THIS PAGE!") - # sign.append(-1) - # feedback.append(-1) - - - # Populate the final variable (this should be a list with all fields scraped) - - row = (topic, post, user, addDate, feedback, status, reputation, sign, interest) - - # Sending the results - - return row - -# This is the method to parse the Listing Pages (one page with many posts) - -def dread_listing_parser(soup): - - board = "-1" # board name (the previous level of the topic in the Forum categorization tree. - # For instance: Security/Malware/Tools to hack Facebook. The board here should be Malware) - - nm = 0 # this variable should receive the number of topics - topic = [] # all topics - user = [] # all users of each topic - post = [] # number of posts of each topic - view = [] # number of views of each topic - addDate = [] # when the topic was created (difficult to find) - href = [] # this variable should receive all cleaned urls (we will use this to do the marge between - # Listing and Description pages) - - # Finding the board (should be just one) - - board = soup.find('a', {"class": "banner-top"}).text - board = cleanString(board.strip()) - - # Finding the repeated tag that corresponds to the listing of topics - - itopics = soup.find("div", {"class": "postBoard"}).find_all("div", {"class": "item"}, recursive=False) - - index = 0 - for itopic in itopics: - - # For each topic found, the structure to get the rest of the information can be of two types. Testing all of them - # to don't miss any topic - - # Adding the topic to the topic list - topic_title = itopic.find("a", {"class": "title"}) - title_flair = topic_title.find('span', {"class": "flair"}) - topics = topic_title.text - try: - title_flair = title_flair.text.strip() - topics = topics.replace(title_flair, '') - except: - pass - topics = topics.replace(u'\xa0', ' ') - topics = topics.replace(",", "") - topics = topics.replace("\n", "") - topic.append(cleanString(topics.strip())) - - # Counting how many topics we have found so far - - nm = len(topic) - - # Adding the url to the list of urls - link = topic_title['href'] - link = cleanLink(link) - href.append(link) - - # Finding the author of the topic - ps = itopic.find('div', {"class": "author"}) - post_wrapper = ps.select_one('a[href^="/u/"]').text - flair = ps.find("span", {"class": "flair"}) - try: - flair = flair.text.strip() - post_wrapper = post_wrapper.replace(flair, '') - except: - pass - author = post_wrapper.strip() - user.append(cleanString(author)) - - # Finding the number of replies - meta = itopic.find("div", {"class": "postMain"}) - posts = meta.find("a").text - posts = posts.replace("comments", '').strip() - post.append(cleanString(posts)) - - # Finding the number of Views - not shown in Dread - view.append("-1") - - - - # If no information about when the topic was added, just assign "-1" to the variable - spans = itopic.find('div', {"class": "author"}).find('span', recursive=False) - dt = spans['title'] - month = find_month(dt) - split_text = dt.split() - day = int(re.search(r'\d+', split_text[0]).group()) - year = int(split_text[2]) - hm = re.findall(r'\d+', split_text[-1]) - hm[0] = int(hm[0]) - hm[1] = int(hm[1]) - date_time_obj = datetime(year, month, day, hour=hm[0], minute=hm[1]) - addDate.append(date_time_obj) - - - - - index += 1 - return organizeTopics("Dread", nm, topic, board, view, post, user, addDate, href) - - - -def dread_links_parser(soup): - - # Returning all links that should be visited by the Crawler - - href = [] - #print(soup.find('table', {"class": "tborder clear"}).find( - # 'tbody').find_all('tr', {"class": "inline_row"})) - - listing = soup.find("div", {"class": "postBoard"}).find_all("div",{"class": "item"}, recursive=False) - - for a in listing: - link = a.find("a", {"class": "title"}) - link = link['href'] - - href.append(link) - - return href - -def find_month(s): - if 'January' in s: - return 1 - elif 'February' in s: - return 2 - elif 'March' in s: - return 3 - elif 'April' in s: - return 4 - elif 'May' in s: - return 5 - elif 'June' in s: - return 6 - elif 'July' in s: - return 7 - elif 'August' in s: - return 8 - elif 'September' in s: - return 9 - elif 'October' in s: - return 10 - elif 'November' in s: - return 11 - elif 'December' in s: - return 12 diff --git a/Forums/Helium/captcha.png b/Forums/Helium/captcha.png deleted file mode 100644 index cd6738a463f8b9c800077395d9b394eef24f10bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5486 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" + parents[2].get('title') - board = board.replace("\n", "") - board = cleanString(board.strip()) - - # Finding the repeated tag that corresponds to the listing of topics - - itopics = soup.find('table', {"class": "table"}).find('tbody').findAll('td', {"class": "col-md-8"}) - repliesViews = soup.find('table', {"class": "table"}).find('tbody').findAll('td', {"class": "col-md-2"}) - - # Counting how many topics we have found so far - - nm = len(itopics) - - index = 0 - for itopic in itopics: - - # Adding the topic to the topic list - - topics = itopic.find('a').get('title') - topics = topics.replace(",", "") - topic.append(cleanString(topics.strip())) - - # Adding the url to the list of urls - link = itopic.find('a').get('href') - link = cleanLink(link) - href.append(link) - - # Finding the author of the topic - author = itopic.find('strong').text - user.append(cleanString(author.strip())) - - rv = repliesViews[index].find('p').text.split() - - # Finding the number of replies - posts = rv[0].replace("Replies", "") - post.append(cleanString(posts.strip())) - - # Finding the number of Views - tview = rv[1].replace("Views", "") - view.append(cleanString(tview.strip())) - - # If no information about when the topic was added, just assign "-1" to the variable - # dt = itopic.find('div', {"class": "responsive-hide"}).text.split('»')[1] - # dt = dt.strip() - # date_time_obj = datetime.strptime(dt,'%a %b %d, %Y %I:%M %p') - # addDate.append(date_time_obj) - addDate.append("-1") - index += 1 - - return organizeTopics("Helium", nm, topic, board, view, post, user, addDate, href) - - -def helium_links_parser(soup): - - # Returning all links that should be visited by the Crawler - - href = [] - - listing = soup.find('table', {"class": "table"}).find('tbody').findAll('td', {"class": "col-md-8"}) - - for a in listing: - bae = a.find('a', href=True) - link = bae['href'] - href.append(link) - - return href \ No newline at end of file diff --git a/Forums/Initialization/desc_transformer.pickle b/Forums/Initialization/desc_transformer.pickle deleted file mode 100644 index f0a4dcf5b4aa90d9928728d2c7c9914ea75bc01f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmYk2$xg#C7=(cWEiFqa`%;zyEo)x_iOXEMBIG27F>PYxq%9XDxaUTAP~HIl;erpJ z#`9~&%g5~Z&-7He^7fr|qd4u~4po|(C!<|Ib1F%ntc$fP^2YtY-B)q(S-cnLc|Cb{ zDt;WAG%FtbzT$LR+j%v1F4>nqMh8(xR!# zv#j*I`bT*`5+^Dh<3?T&jQB79&N^@YeSk?K{q`7{Fq3a#6;rHXnhTg=9The(%SFs_ z3G-Y=l`E*Ri3P5r&K4S6!y?zQ#0@NS6D!<8liOJ34qDvB8uzfyeQdCeO&(y2huG#3 uc6f|kcCg12?DG_Dp5cI99I}Tap5vGo=