Example #1
0
    def test_two_queries_different_results(self):
        """ Test that url updates work fine """
        from search_engine_parser.core.engines.google import Search as GoogleSearch  # pylint: disable=import-outside-toplevel
        from search_engine_parser.core.engines.yahoo import Search as YahooSearch  # pylint: disable=import-outside-toplevel
        gengine = GoogleSearch()
        yahoo_engine = YahooSearch()
        gresults = gengine.search(query="Hello From the Other Side")
        yresults = yahoo_engine.search(query="this is example Bob")
        for key in gresults[0]:
            self.assertNotEqual(gresults[0].get(key, "GSearch"),
                                yresults[0].get(key, "Ysearch"))

        self.assertNotEqual(gresults, yresults)
    def test_two_queries_different_results(self):
        """ Test that url updates work fine """
        from search_engine_parser.core.engines.google import Search as GoogleSearch # pylint: disable=import-outside-toplevel
        from search_engine_parser.core.engines.yahoo import Search as YahooSearch # pylint: disable=import-outside-toplevel
        gengine = GoogleSearch()
        yahoo_engine = YahooSearch()
        gresults = None
        gresults = None
        with vcr.use_cassette('fixtures/google-test-diff-synopsis.yaml', record_mode='once'):
            gresults = gengine.search(query="What's up from this side")
        with vcr.use_cassette('fixtures/yahoo-test-diff-synopsis.yaml', record_mode='once'):
            yresults = yahoo_engine.search(query="this is example Bob")
        for key in gresults[0]:
            self.assertNotEqual(gresults[0].get(key, "GSearch"), yresults[0].get(key, "Ysearch"))

        self.assertNotEqual(gresults, yresults)
Example #3
0
class EngineBaseTest(unittest.TestCase):
    """ Testbase for Engines

    provides tests for engine methods
    """
    @classmethod
    def vcr_search(cls, *args, **kwargs):
        with vcr.use_cassette('fixtures/{}-synopsis.yaml'.format(cls.name),
                              record_mode='new_episodes'):
            cls.results = cls.engine.search(*args, **kwargs)

    def setUp(self):
        from search_engine_parser.core.engines.google import Search  # pylint: disable=import-outside-toplevel
        self.engine = Search()

    @patch('search_engine_parser.core.engines.google.Search.get_results')
    @patch('search_engine_parser.core.engines.google.Search.get_soup')
    async def test_urls(self, get_results_mock, get_soup_mock):
        """ Test that url updates work fine """
        await self.engine.search(query="hello", url="google.com.tr")
        first_url = self.engine._parsed_url.geturl()
        self.assertTrue(validate_url(first_url))

        self.engine.search(query="World", url="https://google.com.tr")
        second_url = self.engine._parsed_url.geturl()
        self.assertTrue(validate_url(second_url))

        self.assertNotEqual(second_url, first_url)

    # Test for https://github.com/bisoncorps/search-engine-parser/issues/92
    def test_two_queries_different_results(self):
        """ Test that url updates work fine """
        from search_engine_parser.core.engines.google import Search as GoogleSearch  # pylint: disable=import-outside-toplevel
        from search_engine_parser.core.engines.yahoo import Search as YahooSearch  # pylint: disable=import-outside-toplevel
        gengine = GoogleSearch()
        yahoo_engine = YahooSearch()
        gresults = gengine.search(query="Hello From the Other Side")
        yresults = yahoo_engine.search(query="this is example Bob")
        for key in gresults[0]:
            self.assertNotEqual(gresults[0].get(key, "GSearch"),
                                yresults[0].get(key, "Ysearch"))

        self.assertNotEqual(gresults, yresults)
Example #4
0
from search_engine_parser.core.engines.yahoo import Search as YahooSearch
from search_engine_parser.core.engines.google import Search as GoogleSearch
from search_engine_parser.core.engines.bing import Search as BingSearch
from search_engine_parser.core.engines.duckduckgo import Search as DuckSearch
import csv

#Intializing Search Engines
g_search = GoogleSearch()
y_search = YahooSearch()
b_search = BingSearch()
d_search = DuckSearch()

#Search prompt
search_query = input("Enter your search query here: ") 
search_set = (search_query, 1)
search_set2 = (search_query, 2)

#Searching for query
g_results = g_search.search(*search_set)
b_results = b_search.search(*search_set2)
d_results = d_search.search(*search_set2)
y_results = y_search.search(*search_set)

#Create csv file
with open('data.csv','w',newline='') as file:
    #Creating writer
    writer = csv.writer(file)
    #Writing each row's header
    writer.writerow(['Bing','DuckDuckGo','Google','Yahoo'])
    #Print first 20 links for each search engine (can comment)
    for i in range(0,21):
Example #5
0
                    type="string",
                    help="Engine: google, yahoo, yandex, bing, ask, all")
(option, args) = optparse.parse_args()
if option.domin == None and option.engine == None:
    print(optparse.usage)
    exit(0)
elif option.engine not in ("google", "yahoo", "bing", "ask", "yandex", "all"):
    os.system('printf "\e[1;31m"')
    print(
        "Invalid search engine, try with: google, yahoo, bing, ask, yandex, all"
    )
    exit(0)
else:
    if option.engine == "google":
        print("[-] Searching in Google:")
        gsearch = GoogleSearch()
        gresults = gsearch.search(option.domin, 1)
        a = {"Google": gresults}
        for k, v in a.items():
            os.system('printf "\e[1;35m"')
            print(f"-------------{k}------------")
            #pprint.pprint(a[k]['links'])
            data_list = (a[k]['links'])
            data = '\n'.join(data_list)
            with open("google.txt", "a") as f:
                f.write(f"-------------{k}------------\n")
                f.write(data)
    elif option.engine == "yahoo":
        print("[-] Searching in Yahoo:")
        yasearch = YahooSearch()
        yaresults = yasearch.search(option.domin, 1)
Example #6
0
 def setUp(self):
     from search_engine_parser.core.engines.google import Search  # pylint: disable=import-outside-toplevel
     self.engine = Search()
Example #7
0
from search_engine_parser.core.engines.google import Search as GoogleSearch
from search_engine_parser.core.engines.googlenews import Search as GoogleNewSearch
from search_engine_parser.core.engines.yahoo import Search as YahooSearch
from search_engine_parser.core.engines.googlescholar import Search as GoogleScholarSearch
from search_engine_parser.core.engines.duckduckgo import Search as DuckDuckGoSearch
from search_engine_parser.core.engines.ask import Search as AskSearch
from search_engine_parser.core.engines.bing import Search as BingSearch
from search_engine_parser.core.engines.yandex import Search as YandexSearch
from search_engine_parser.core.engines.coursera import Search as CourseraSearch
from search_engine_parser.core.base import BaseSearch

gsearch = GoogleSearch()
gnsearch = GoogleNewSearch()
asksearch = AskSearch()
bsearch = BingSearch()
ydsearch = YandexSearch()
ysearch = YahooSearch()
ddgsearch = DuckDuckGoSearch()
csearch = CourseraSearch()
gssearch = GoogleScholarSearch()


base_search = BaseSearch()
# base_search.clear_cache(all_cache=True)

key_words = "marketing marque"

try:
    # gresults = gsearch.search(search_args[0], proxy='http://192.168.2.9:3128')
    gresults = gsearch.search(key_words)