示例#1
0
def wiki(txt):
    while True:
        try:
            url = wikipedia.page(wikipedia.suggest(txt)).url
            research = wikipedia.page(wikipedia.suggest(txt)).content
            print(url)
            print(research)
            print('press any button to continue')
            SpeakText('press any button to continue')
            input()
            break
        except Exception as e:
            print('your search have many results please search better :)')
            print('some options you can use:')
            SpeakText('your search have many results please search better :)')
            SpeakText('some options you can use:')
            print(str(e))
            print('do you wanna search again?(y/n)')
            SpeakText('do you wanna search again?(y/n)')
            inp = input()
            if inp == 'y':
                print('what you wanna search about?')
                SpeakText('what you wanna search about?')
                txt = speechToText()
            else:
                break
示例#2
0
def wikipedia_query(query, simple_result=False):
    if not query:
        return "Try searching for *something* next time, knucklehead."
    try:
        page = wikipedia.page(query, auto_suggest=True)
        if simple_result: # Just return the url of the found page
            return page.url
        else: # Return the first ~500 characters of the summary
            title = page.title
            summary = page.summary
            for i in range(0, (len(summary) if len(summary) < 500 else 500) - 1):
                if summary[i] == '=' and summary[i+1] == '=':
                    summary = summary[0:i]
                    break;
            if len(summary) >= 500:
                summary = summary[0:500]
                summary += ' ...*`[truncated]`*'
            return "***```{title}```***\n{summary}".format(title=title, summary=summary)
    except wikipedia.exceptions.PageError:
        raise bot_exception(WIKIPEDIA_EXCEPTION, 
            "Page doesn't exist. Trying for some suggestions...", '```{}```'.format(
            (wikipedia.suggest(query) if wikipedia.suggest(query) is not None else "None")))
    except wikipedia.exceptions.DisambiguationError as tp: # Try to get list of suggestions
        suggestions = wikipedia.search(query, results=5)
        if len(suggestions) > 0:
            formatted_suggestions = '```\n'
            for suggestion in suggestions:
                formatted_suggestions += '{}\n'.format(suggestion)
            formatted_suggestions += '```'
            raise bot_exception(WIKIPEDIA_EXCEPTION, "Query is too ambiguous. Here are some suggestions:", formatted_suggestions)
        else:
            raise bot_exception(WIKIPEDIA_EXCEPTION, "Query is too ambiguous. No suggestions found.")
示例#3
0
def searchWikiN(words, n):
    weighted_query = ""
    for i in range(0, len(words) - (n - 1)):
        #print i
        #print words
	title = ""
        empty_word = False
        for j in range (i, i + n):
	    title += words[j] + " " 
            if (words[j] == ""):
                empty_word = True
                break
        title = title[0:len(title) - 1]
        if (empty_word):
            continue
        try:
            article = wikipedia.page(title, auto_suggest=False)
            weighted_query += "0.45 #uw2(" + title + ") "
            #print article.categories
            for pop_category in popularCategories(article.categories, words):
                weighted_query += "0.15 " + pop_category + " "
            if (wikipedia.suggest(title) != title.lower()):
                weighted_query += "0.45 #uw2(" + wikipedia.suggest(title) + ") "
        except:
            continue
    #print weighted_query
    return weighted_query
示例#4
0
def search_page(search_title):
    wikipedia.search(search_title)
    wikipedia.suggest(search_title)
    wikipedia.summary(search_title)
    wikipedia.title(search_title)
    wikipedia.url(search_title)

    try:
        search_title = wikipedia.summary(search_title)
    except wikipedia.exceptions.DisambiguationError as e:
        print(e.options)
示例#5
0
 def resume(result):
     try:
         print("\t" + wikipedia.summary(result, sentences=1))
     except HasAnotherMeaning as another_meaning:
         print("Other pages for this result: ")
         options = another_meaning.options[:3]
         for other_option in options:
             print(other_option)
     except NoCoincidences:
         print("Without results")
         wikipedia.suggest(result)
示例#6
0
def search(keyword):
    betterWord = wikipedia.suggest(keyword)
    if betterWord is not None:
        keyword = betterWord
        # search for the keyword
    search = wikipedia.search(keyword)
    return search
示例#7
0
文件: bot.py 项目: refact0r/yoidbot
async def wiki(ctx, *, subject):
    print(
        f"{ctx.guild.name} - #{ctx.channel.name} - {ctx.author.name} - {ctx.message.content}"
    )
    ' '.join(subject)
    suggest = wikipedia.suggest(subject)
    if not suggest:
        suggest = subject
    summary = ''
    try:
        summary = wikipedia.summary(suggest, sentences=4)
    except wikipedia.exceptions.DisambiguationError as e:
        suggest = e.options[0]
    except wikipedia.exceptions.PageError as e:
        await ctx.send(f'"{subject}" does not match any pages.')
        return
    num = 4
    while len(summary) > 1000 or not summary:
        num -= 1
        summary = wikipedia.summary(suggest, sentences=num)
    page = wikipedia.page(suggest)
    summary = f"{page.url}\n\n{summary}"
    embed = discord.Embed(title=page.title,
                          color=ctx.author.color,
                          description=summary)
    if page.images[0]:
        embed.set_image(url=page.images[0])
    await ctx.send(embed=embed)
示例#8
0
    async def wiki(self, ctx, article):
        page = None
        disambiguation = False
        lookup = True
        try:
            page = wikipedia.page(article)
        except wikipedia.DisambiguationError:
            disambiguation = True
        except Exception:
            lookup = False

        if page is None and lookup and not disambiguation:
            page = wikipedia.suggest(article)
            await ctx.send(f"Couldn't find {article}. Is {page} right?")
        elif not lookup:
            await ctx.send(
                "OOPSIE WOOPSIE!! Uwu We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!"
            )
        else:
            images = page.images
            summary = wikipedia.summary(article)
            desc = (summary[:1000] + "...") if len(summary) > 1000 else summary
            embed = (
                discord.Embed(
                    title=wikipedia.page(article).title, url=page.url, description=desc
                )
                if len(images) == 0
                else discord.Embed(
                    title=wikipedia.page(article).title,
                    url=page.url,
                    description=desc,
                    image=images[0],
                )
            )
            await ctx.send(embed=embed)
示例#9
0
def wiki(msg):
    
    search_word = msg.lower()
    
    replace_words = ["what is ", "information about ", "explain ", " about ", "describe ", " info ", "who is ", "get me some ", "get me "]
    
    for i in replace_words:
        search_word = search_word.replace(i, "")
    
    wikisearch = ""
    
    try:

        wikisearch = wikipedia.summary(wikipedia.search(search_word)[0])

    except:

        try:
            wikisearch = wikipedia.summary(wikipedia.suggest(search_word))
  
        except:
            
            wikisearch = "Seems like its difficult for me to find. Please ask something else."
    
    if wikisearch != "":
        matches = re.finditer("\.", wikisearch)
        dot_indexes = [match.start() for match in matches]
        if dot_indexes[1] > 100 :
            indx = dot_indexes[0]+1
        else:
            indx = dot_indexes[1]+1
                
        wikisearch = wikisearch[0:indx]
    
    return wikisearch
示例#10
0
 def define_term_using_wikipedia(self, term: str, sure_exists=False) -> str:
     if self.view.reader.ready:
         language = self.view.reader.document.language
     else:
         language = app.current_language
     wikipedia.set_lang(language.two_letter_language_code)
     page = None
     try:
         if sure_exists:
             page = wikipedia.page(term)
         elif (suggested := wikipedia.suggest(term)) is not None:
             page = wikipedia.page(suggested)
         if page is not None:
             return (page.title, page.summary.strip(), page.url)
         else:
             return list(wikipedia.search(term))
示例#11
0
    def get_query(self, query, isInverse=False):
        if self.language == INDONESIAN and not isInverse:
            wikipedia.set_lang(ID)
            lang = INDONESIAN
        else:
            wikipedia.set_lang(EN)
            lang = ENGLISH
        try:
            possible_page_titles = wikipedia.search(query)
            if possible_page_titles and len(possible_page_titles) > 0:
                return possible_page_titles[0], 0, lang
            else:
                suggested_query = wikipedia.suggest(query)
                if suggested_query is None or len(suggested_query) < 1:
                    return [], -1, lang
                possible_page_titles = wikipedia.search(suggested_query)

                if possible_page_titles and len(possible_page_titles) > 0:
                    return possible_page_titles[0], -1, lang

        except wikipedia.exceptions.DisambiguationError as e:
            possible_page_titles = e.options
            if possible_page_titles and len(possible_page_titles) > 0:
                return possible_page_titles[0], 0, lang
            return [], -1, lang
        else:
            if possible_page_titles and len(possible_page_titles) > 0:
                return possible_page_titles[0], 0, lang
            return [], -1, lang

        return [], -1, lang
	def _answer_cover(self):
		try:
			sug = wk.suggest(self._answer)
			if type(sug) == str:
				sug = [sug]
		except Exception, e:
			return False
示例#13
0
def getWikiSearchQuery(namedEntity, lazySuggestedQuery=True):
	'''
	If the names entity doesn't correspond to any 
	existing article name, it returns a suggested
	one that does exist.

	if lazySuggestedQuery is True, the returned list 
	will only be a list of the first suggestion
	'''

	articleNameSuggested = wikipedia.suggest(namedEntity)

	#None suggestion means either that the article 
	#already has the right name or that it doesn't 
	#exist
	if articleNameSuggested == None:
		wikipediaSuggestedQueries = wikipedia.search(namedEntity)
		#if we're being lazy and we only want the first suggestion
		if lazySuggestedQuery == True:
			wikipediaSuggestedQueriesList = [wikipediaSuggestedQueries[0]]
		else:
			wikipediaSuggestedQueriesList = wikipediaSuggestedQueries
	else:
		wikipediaSuggestedQueriesList = wikipedia.search(articleNameSuggested)
	#if the list is empty, we return None
	if len(wikipediaSuggestedQueriesList) != 0:
		return wikipediaSuggestedQueriesList
	else:
		return None
示例#14
0
def wikipedia_request(answer, gl, noose):
    """
    looks up wikipedia information for the word

    :param answer:
    :param gl:
    :param noose:
    """
    answer = ''.join(answer)
    try:
        print(Fore.LIGHTYELLOW_EX + 'Wikipedia Summary:')
        print(wikipedia.summary(answer))
    except wikipedia.exceptions.DisambiguationError as e:
        print(Fore.LIGHTYELLOW_EX +
              '\nTop ranking result from Wikipedia disambiguate list:')
        print(wikipedia.summary(e.options[0]))
        print(Fore.LIGHTYELLOW_EX +
              '\nRandom result from Wikipedia disambiguate list:')
        print(
            wikipedia.summary(e.options[random.choice(range(len(e.options)))]))
    except wikipedia.exceptions.PageError:
        print(Fore.LIGHTYELLOW_EX + '\nWikipedia search suggestion for',
              Fore.LIGHTYELLOW_EX + answer + ':')
        print(wikipedia.summary(wikipedia.suggest(answer)))
    finally:
        print(Fore.LIGHTYELLOW_EX + '\nDefinitions:')
        twinword_request(answer, gl, noose)
示例#15
0
 def getTopic(self, topic):
     # if match
     if topic in wikipedia.search(topic):
         print("Pulling from wiki page on " + topic + ".")
         self._topic = topic
     # if close match
     elif wikipedia.suggest(topic) is not None:
         print(
             "Pulling from " + wikipedia.suggest(topic) +
             ", if this isn't correct please exit and specify a different query."
         )
         self._topic = wikipedia.suggest(topic)
     # no matches
     else:
         print("That topic didn't work, please try again")
         exit()
示例#16
0
 async def wiki(self, ctx, args):
     try:
         z = wikipedia.summary(args)
     except:
         l = wikipedia.suggest(args)
         z = "Did you mean {} Please be more specific!".format(l)
     await ctx.send('```{0}```'.format(z))
     pass
示例#17
0
def main():
    wikipedia.set_lang("it")
    max_search_results = 3
    search_choices = list([
        "Summary", "Full Page", "Full Page in HTML", "Get Images Link",
        "Get Page Url"
    ])
    # to_search = "fabi fiba"
    to_search = input("What are you looking for?\n")
    search_results = wikipedia.search(to_search, results=max_search_results)
    print("Looking for suggested research %s" % wikipedia.suggest(to_search))
    if wikipedia.suggest(to_search) is not None:
        to_search_suggested = wikipedia.suggest(to_search)
        search_results_suggested = wikipedia.search(to_search_suggested,
                                                    results=max_search_results)
        for sugg in search_results_suggested:
            search_results.append(sugg)
    print("I'm looking for %s" % to_search)
    if len(search_results) == 0:
        print("No results")
        sys.exit(1)
    which_one = draw_menu(search_results)
    term = search_results[which_one]
    which_one = draw_menu(search_choices)
    if which_one == 0:
        output = get_summary(term)
        print(output)
    elif which_one == 1:
        output = get_page_info(term, "fullpage")
        print(output)
    elif which_one == 2:
        output = get_page_info(term, "fullpagehtml")
        print(output)
    elif which_one == 3:
        output = get_page_info(term, "getimageslink")
        response = draw_input("Do you want to download all of them? [Y/N]: \t",
                              list(["Y", "N"]))
        if response.upper() == "Y":
            title = get_page_info(term, "getpagetitle")
            # Download all images
            download_from_links(output, title)
    elif which_one == 4:
        output = get_page_info(term, "getpageurl")
        print(output)
    else:
        print("Hello!")
示例#18
0
 def suggest(self, article_name):
     lst = None
     while (lst == None):
         try:
             lst = wikipedia.suggest(article_name)
             return lst
         except:
             pass
示例#19
0
def get_character_pages(character_name):
    all_pages = wp.search(character_name)
    if all_pages == []:
        try:
            all_pages = wp.search(wp.suggest(character_name))
        except:
            all_pages = []
    return {'name': character_name, 'pages': all_pages}
示例#20
0
async def printout(message, query, lang):
    wikipage = None
    lookup = True
    disambiguation = False
    print("printout")

    wikipedia.set_lang(lang)

    try:
        wikipage = wikipedia.page(query)
        print("I found directly")

    except wikipedia.PageError:
        print("Can't access by default. Trying to search")

    except wikipedia.DisambiguationError:
        await client.send_message(
            message.channel,
            "This query leads to a disambiguation page. Please be more specific."
        )
        disambiguation = True

    except Exception:
        lookup = False

    if wikipage is None and lookup and not disambiguation:
        wikipage = wikipedia.suggest(query)

    if wikipage is None and lookup and not disambiguation:
        await client.send_message(message.channel,
                                  "Sorry, cannot find " + query + " :v")
    elif not lookup:
        await client.send_message(
            message.channel,
            "Something went wrong. Check the language, or maybe I can't reach Wikipedia"
        )
    else:
        imglist = wikipage.images
        if len(imglist) == 0:
            em = discord.Embed(title=wikipage.title,
                               description=wikipedia.summary(query,
                                                             sentences=2),
                               colour=0x2DAAED,
                               url=wikipage.url)
        else:
            em = discord.Embed(title=wikipage.title,
                               description=wikipedia.summary(query,
                                                             sentences=2),
                               colour=0x2DAAED,
                               url=wikipage.url,
                               image=imglist[0])
            em.set_author(name=client.user.name,
                          icon_url="https://wikibot.rondier.io")
            await client.send_message(message.channel, embed=em)
            await client.send_message(message.channel,
                                      "More at <" + wikipage.url + ">")

    wikipedia.set_lang("en")
示例#21
0
async def wiki(ctx, *, query):
    newquery = wikipedia.suggest(query)
    if(newquery is not None):
        query = newquery

    embed=discord.Embed(title=wikipedia.page(query).title, url=wikipedia.page(query).url)
    embed.set_thumbnail(url=wikipedia.page(query).images[0])
    embed.add_field(name="Summary", value=wikipedia.summary(query, sentences=2), inline=False)
    await ctx.send(embed=embed)
示例#22
0
def generalQuery(queryG):
    """Tries to combine previous three endpoints"""
    if len(sp.search(q=queryG,type='artist')['artists']['items']) == 0:
        return json.dumps(sp.search(q=queryG, type='track'))
    wikiSug = wikipedia.suggest(query=queryG)
    artistID = json.dumps(sp.search(q=queryG,type='artist')['artists']['items'][0]['uri'])#artist_top_tracks(artist_id, country='US')
    id = artistID[16:len(artistID)-1]
    spotRecs = sp.recommendations(seed_artists=[id], limit=10)
    return json.dumps(spotRecs)
示例#23
0
async def on_message(message):
    m = message.content.lower()

    if m.startswith("?info"):
        if wikipedia.suggest(m[5:len(m)]) != None:
            await message.channel.send(
                wikipedia.summary(wikipedia.suggest(m[5:len(m)])))
        else:
            await message.channel.send(
                wikipedia.summary(wikipedia.search(m[5:len(m)])[0]))

    if m.startswith("?iind degré") | m.startswith(
            "?second degré"
    ) | m.startswith("?évangile selon saint franck") | m.startswith(
            "?évangile selon st franck") | m.startswith(".deuxième degré"):
        await message.channel.send(
            "IInd degré chiffré 6 : on double la basse si possible au ténor, et ça descend !"
        )
示例#24
0
def search():
    search_term = input("Search: ")
    # Fix Search Term in case of errors:
    fixed_search_term = wikipedia.suggest(search_term)
    # If Search Term needs fixing:
    if fixed_search_term:
        return wikipedia.search(fixed_search_term)
    # If Search Term doesn't need fixing:
    else:
        return wikipedia.search(search_term)
示例#25
0
 def search(self, m):
     try:
         result = wikipedia.summary(m.text)
     except:
         result = wikipedia.suggest(m.text)
         if not result: result = "No hay sugerencias"
         result = "Quiza quisiste decir: " + result
     m.m_type = "text"
     m.text = result
     return m
    def __suggest_term(self):
        ''' Request a suggestion of the term. The request is sent if self.suggest is True.
        
        Returns:    a suggestion search term as string or None
        '''
        if self.suggest:
            suggestion = wiki.suggest(self.term)
            self.logger.info('Suggested term: {}'.format(suggestion))

            return suggestion
示例#27
0
    async def printout(self, ctx, query, lang):
        wikipage = None
        lookup = True
        disambiguation = False
        wikipedia.set_lang(lang)
        try:
            wikipage = wikipedia.page(query)
        except wikipedia.PageError:
            await ctx.send(
                f"{getEmoji('red_tick')} - I can't access this page, please try with something else"
            )
        except wikipedia.DisambiguationError:
            await ctx.send(
                f"{getEmoji('red_tick')} - This search leads to a disambiguation page. Please be more specific"
            )
            disambiguation = True
        except Exception:
            lookup = False
        if wikipage is None and lookup and not disambiguation:
            wikipage = wikipedia.suggest(query)
        if wikipage is None and lookup and not disambiguation:
            await ctx.send(
                f"{getEmoji('red_tick')} - Sorry, I cannot find {query}")
        elif not lookup:
            emb = discord.Embed(
                title="Error:",
                description=
                "Something went wrong. Check the language, or maybe I can't reach Wikipedia"
            )
            await ctx.send(embed=emb)
        else:
            imglist = wikipage.images
            if len(imglist) == 0:
                em = discord.Embed(title=wikipage.title,
                                   description=wikipedia.summary(query,
                                                                 sentences=2),
                                   colour=getEmbedColour("default"),
                                   url=wikipage.url)
            else:
                em = discord.Embed(title=wikipage.title,
                                   description=wikipedia.summary(query,
                                                                 sentences=2),
                                   colour=getEmbedColour("default"),
                                   url=wikipage.url,
                                   image=imglist[0])
                em.set_footer(
                    icon_url=ctx.message.author.avatar_url,
                    text=
                    f"Article Requested By: {ctx.message.author.name}#{ctx.message.author.discriminator}"
                )
                await ctx.send(embed=em)
                await ctx.send("More at <" + wikipage.url + ">")

        wikipedia.set_lang("en")
示例#28
0
def search():
    """
    Search a possible list of contents on Wikipedia page matching your query.
    In case of any disambiguation, it recursively provides a better, more clear alternative to your search term.
    """
    os.system('cls')
    topic = input("Enter your search query (Press X to Quit):")
    if topic.lower() == 'x':
        exit(0)
    res = wiki.search(topic)
    if len(res) == 1:
        return res[0]

    elif res == []:
        if wiki.suggest(topic) != None:
            print("You want to search for: {}?".format(wiki.suggest(topic)))
            ch = input(
                "Enter Y(Yes) to continue or any other key to search other term:"
            )
            if ch.lower() == 'y' or ch.lower() == 'yes':
                return wiki.suggest(topic)
        else:
            print(
                "Sorry, no content matches your query.\nTry with another term."
            )
        return (search())
    else:
        print("\nSuggested topics are:")
        for i, r in enumerate(res, 1):
            print('{}. {}'.format(i, r))
        ch = int(
            input(
                "Press corresponding number to read about any term from the suggestions:"
            ))
        if ch in range(1, len(res) + 1):
            return res[ch - 1]
        else:
            print(
                "Sorry, your term is not in given suggestions\nCarrying on with the original query..."
            )
            return res[0]
	def _full_clue_cover(self):
		try:
			# sug = wk.suggest(self._whole_keyword)
			sug = wk.suggest(self._part_keyword)
			if type(sug) != list:
				sug = [sug]
			# sear = wk.search(self._whole_keyword)
			sear = wk.search(self._part_keyword)
			if type(sear) != list:
				sear = [sear]
		except Exception, e:
			return False
示例#30
0
def get_beautiful_soup(input_name):
    try:
        suggested_input = wikipedia.suggest(input_name)
        if suggested_input != None:
            search_name = suggested_input
        else:
            search_name = input_name
        response = wikipedia.WikipediaPage(search_name)
        soup = BeautifulSoup(response.html(), "html.parser")
        return soup
    except wikipedia.DisambiguationError as e:
        return e.options
示例#31
0
def printout(message, query, lang):
    wikipage = None
    lookup = True
    disambiguation = False
    print("printout")

    wikipedia.set_lang(lang)

    try:
        wikipage = wikipedia.page(query)
        print("I found directly")            
                
    except wikipedia.PageError:
        print("Can't access by default. Trying to search")
        
    except wikipedia.DisambiguationError as e:
        yield from client.send_message(message.channel, "This query leads to a disambiguation page. Please be more specific.")
        pagelist = "List of pages possible:\n```"
        for page in e.options:
            pagelist += page + '\n'
        pagelist += "```"
        yield from client.send_message(message.channel, pagelist)
        disambiguation = True
            
    except Exception:
        lookup = False
                
    if wikipage is None and lookup and not disambiguation:
        wikipage = wikipedia.suggest(query)
        try:
            wikipage = wikipedia.page(wikipage)
        except wikipedia.exceptions.PageError:
            wikipage = None
            
    if wikipage is None and lookup and not disambiguation:
        yield from client.send_message(message.channel, "Sorry, cannot find " + query + " :v")
    elif not lookup:
        yield from client.send_message(message.channel, "Something went wrong. Check the language, or maybe I can't reach Wikipedia")
    else:
        print(type(wikipage))
        imglist = wikipage.images
        if len(imglist) == 0:
            em = discord.Embed(title=wikipage.title, description=wikipedia.summary(query, sentences=2), colour=0x2DAAED, url=wikipage.url)
        else:
            em = discord.Embed(title=wikipage.title, description=wikipedia.summary(query, sentences=2), colour=0x2DAAED, url=wikipage.url, image=imglist[0])
        em.set_author(name="Wikipedia", url=wikipage.url, icon_url="https://upload.wikimedia.org/wikipedia/commons/5/53/Wikipedia-logo-en-big.png")
        em.set_thumbnail(url="https://www.wikipedia.org/static/favicon/wikipedia.ico")
        yield from client.send_message(message.channel, embed=em)
        yield from client.send_message(message.channel, "More at <" + wikipage.url + ">")


    wikipedia.set_lang("en")
示例#32
0
def func():
    """
    Testing function
    """
    for title in wikipedia.search(FIND, results=5, suggestion=True):
        print(title)

    print(wikipedia.suggest(WRONG))
    print(wikipedia.summary(FIND))

    wikipedia.set_lang(LANGUAGE)
    print(wikipedia.summary(FIND))

    print(wikipedia.summary(CITY))
示例#33
0
def main():
    search_phrase = "Empty"
    while search_phrase != "":
        print("Enter a search phrase (or enter a blank to exit)")
        search_phrase = input(">>> ")
        if search_phrase == "":
            continue
        elif wikipedia.suggest(search_phrase) is None:
            try:
                page = wikipedia.page(search_phrase)
                title = page.title
                summary = wikipedia.summary(search_phrase)
                url = page.url
                print(title)
                print(summary)
                print(url)
            except wikipedia.exceptions.DisambiguationError as e:
                print("Suggestions:\n" + ", ".join(e.options))
            except wikipedia.exceptions.PageError:
                print("The page", search_phrase, "does not exist")
        else:
            print("Suggestion:", wikipedia.suggest(search_phrase))
    print("Bye~")
示例#34
0
def wiki(subject):
    result = []
    search_result = wikipedia.search(subject)
    if search_result == []:
        search_result = wikipedia.suggest(subject)[0]
    else:
        search_result = search_result[0]
    try:
        response = wikipedia.page(search_result)
    except wikipedia.exceptions.DisambiguationError as e:
        print e.options
        return []
    original_source='wikipedia'
    result.append({'title': response.title, 'url': response.url, 'original_source':original_source})
    return result
示例#35
0
def getFact(subject):
    print "DEBUG: This is the subject"
    print subject
    suggestion = wikipedia.suggest(subject)
    print "DEBUG: This is the suggestion"
    print suggestion
    if suggestion is None or suggestion == "":
        suggestion = subject
        print "DEBUG: No suggestion found for input, set suggestion to subject"
    page = wikipedia.page(title=suggestion, auto_suggest=True, redirect=True)
    # print "DEBUG: This is the page"
    # print page
    # print page.html()
    # print "DEBUG: This is the page summary"
    # print page.summary
    f = open('content.txt', 'w')
    content = page.content
    content = content.encode(encoding='UTF-8')
    factArray = factStrip(content)
    randIndex = randint(0, len(factArray) - 1)
    return factArray[randIndex]
示例#36
0
def titleandarticle (term):
    results = []
    try:
        #search for term
        results = wikipedia.search(term)
        #check no disambiguation error will occur
        wikipedia.summary(term)
    except Exception as e:
        #if disabmbiguation error occurs take the error message
        results_disambiguation = str(e)
        #extract the disabmbiguations given in message and add these to results
        results_disambiguation = results_disambiguation.split("\n")
        results_disambiguation.pop()
        results_disambiguation.pop(0)
        results = results_disambiguation + results
    for i in range(len(results)-1):
        #remove unwanted disabmbiguation articles (list of disabmbiguations of word)
        if "(disambiguation)" in results[i]:
            results.pop(i)

    dict_list = []
    for result in results:
        try:
            #extract only one sentace
            article = wikipedia.summary(result, sentences = 1)
            link = "https://en.wikipedia.org/wiki/"+result.replace(" ","_")
            #add to list
            dict_list.append({"title" : result, "text" : article, "link" : link})
        except:
            #if error occurred, take the suggestion if available
            suggestion = wikipedia.suggest(result)
            if suggestion:
                article = wikipedia.summary(suggestion, sentences = 1)
                link = "https://en.wikipedia.org/wiki/"+suggestion.replace(" ","_")
                #add to list
                dict_list.append({"title" : result, "text" : article, "link" : link})

    return json.dumps(dict_list)
示例#37
0
try:
    wikipedia.summary(term)
    results = wikipedia.search(term)
except Exception as e:
    results = str(e)
    results = results.split("\n")
    results.pop()
    results.pop(0)
print("get list")
if len(results) > 15:
    results = results[:15]
print("check size")
for i in range(len(results)-1):
    if "(disambiguation)" in results[i]:
        results.pop(i)
print("remove disambiguation")

dict_list = []
for result in results:
    try:
        article = wikipedia.summary(result, sentences = 1)
        print("pass")
    except:
        suggestion = wikipedia.suggest(result)
        if suggestion:
            article = wikipedia.summary(suggestion, sentences = 1)
        print("fail")
    dict_list.append({"title" : result, "text" : article})

print("create dictionary")
示例#38
0
文件: Dinobot.py 项目: Cockie/Dinobot
def wiki(_channel, string, count):
    string = string.strip("'").strip('\r\n').strip("?").strip(".").strip("!").lower()
    string = string.strip()
    if string.startswith("a "):
        string = string[2:]
    elif string.startswith("an "):
        string = string[3:]
    elif string.startswith("the "):
        string = string[4:]
    #print(string)
    try:
        message = wikipedia.summary(string, sentences=count).replace('. ', ".\n")
        pageresult = wikipedia.page(string).url.replace('Https://en.wikipedia.org/wiki/', '').replace(
            'https://en.wikipedia.org/wiki/', '')
    except Exception:
        res = wikipedia.search(string)
        #print(res)
        temppage = 0
        pageresult = 0
        ref = 0
        counter = 0
        maxres = 5
        test = wikipedia.suggest(string)
        #print(test)
        if len(res) == 0:
            message = "I found nothing, sorry!"
            sendmsg(_channel, message, delay=False)
            return
        if test is None or test.lower().replace(' ', '') != string.replace(' ', ''):
            for stuff in res:
                #print(stuff.lower().replace(' ', ''))
                #print(string.replace(' ', ''))
                if stuff.lower().replace(' ', '') == string.replace(' ', ''):  # exact match
                    pageresult = stuff
                    break
                else:
                    try:
                        temppage = wikipedia.page(stuff)
                        if len(temppage.references) > ref:
                            ref = len(temppage.references)
                            pageresult = stuff
                        counter += 1
                        if counter > maxres:
                            break
                    except wikipedia.exceptions.DisambiguationError as e:
                        # print(e.options)
                        for opt in e.options:
                            try:
                                temppage = wikipedia.page(opt)
                                if len(temppage.references) > ref:
                                    ref = len(temppage.references)
                                    pageresult = opt
                                counter += 1
                                if counter > maxres:
                                    break
                            except:
                                pass
                    except KeyError:
                        pass
                    counter += 1
                    if counter > maxres:
                        break
        else:
            pageresult = test
            #print(pageresult)
        try:
            message = wikipedia.summary(pageresult, sentences=count).replace('. ', ".\n")
        except wikipedia.exceptions.DisambiguationError as e:
            sendmsg(_channel, "I'm not sure what you mean, i could find:", delay=False)
            i = 0
            if count != 1:
                for stuff in e.options:

                    sendmsg(_channel, "https://en.wikipedia.org/wiki/" + stuff.replace(' ', '_'))
                    message = "That's all!"
                    i += 1
                    if i == count:
                        message = "There's more but I'm stopping there!!"
                        break
            else:
                message = "https://en.wikipedia.org/wiki/" + pageresult.replace(' ', '_')
        except Exception as e:
            logerror(e)
            message = "Something went wrong. It's the fault of the python library makers!"
            sendmsg(_channel, message, delay=False)
            return
    buf = io.StringIO(str(message))
    read = buf.readline()
    #print(read)
    testbool = False
    while read != "":
        sendmsg(_channel, read.strip().replace('\n', ''), delay=testbool)
        read = buf.readline()
        testbool = True
    if count != 1:
        #print(pageresult)
        sendmsg(_channel, "https://en.wikipedia.org/wiki/" + pageresult.replace(' ', '_'))
示例#39
0
	if(age<50):
		return 4
	else:
		return 5
def gender(he,she):
	if(he>she):
		return "1"
	if(she>he):
		return "0"
	else:
		return "2"


try:
	celeb = str(sys.argv[1:][0])
	celeb = wikipedia.suggest(celeb)
	if(str(celeb)=="None"):
		try:
			sentence =  wikipedia.summary(str(sys.argv[1:][0]), sentences=1)
			total_summary = wikipedia.page(str(sys.argv[1:][0])).content
		except:
			print "NULL,NULL"
			sys.exit(0)
	else:
		try:
			sentence =  wikipedia.summary(celeb, sentences=1)
			total_summary = wikipedia.page(celeb).content
		except:
			print "NULL,NULL"
			sys.exit(0)
except:
示例#40
0
def search():
    suggestions = wikipedia.suggest('privatize social security')
    print(suggestions)
    page = wikipedia.page('privatize social security')
    print (page.content)
    pass
示例#41
0
文件: test1.py 项目: navbharti/java
ny = wikipedia.page("pondicherry")
print ny.title
print ny.url
#print ny.content.encode("iso-8859-15", "xmlcharrefreplace")
#print ny.links[0]
#print wikipedia.summary("Facebook")

'''

wikipedia.search(query, results=10, suggestion=False)
Do a Wikipedia search for query.

Keyword arguments:

results - the maxmimum number of results returned
suggestion - if True, return results and suggestion (if any) in a tuple
'''
queries = wikipedia.search('Facebook',results = 51, suggestion = True)
#print query
print queries
#print len(queries)
for query in queries:
    print query
print wikipedia.suggest('Facebook')
print wikipedia.summary('Facebook', sentences=2, chars=10, auto_suggest=True, redirect=True)
print wikipedia.page(title="Facebook", pageid=None, auto_suggest=True, redirect=True, preload=False)

print wikipedia.geosearch(72.0, 12.0 , title='Facebook', results=10, radius=1000)

wikipage = wikipedia.WikipediaPage(title='Facebook', pageid=None, redirect=True, preload=False, original_title=u'')
print wikipage