mirror of
https://github.com/RussellChamp/tilde-projects.git
synced 2026-10-28 00:22:34 +00:00
black
This commit is contained in:
38 files changed
+4549
-2523
No files matched your search
+69
-40
@@ -1,50 +1,79 @@
|
||||
import urllib
|
||||
from bs4 import BeautifulSoup
|
||||
import random
|
||||
|
||||
def get_philosophy(word, max_steps=20):
|
||||
step_words = [word]
|
||||
steps = 0
|
||||
|
||||
url = 'https://en.wikipedia.org/wiki/%s' % word
|
||||
while steps < max_steps:
|
||||
soup = BeautifulSoup(urllib.urlopen(url).read(), 'html.parser')
|
||||
title = soup.find('h1', id='firstHeading')
|
||||
content = soup.find('div', id='mw-content-text')
|
||||
if not content:
|
||||
break
|
||||
item = [item for item in content.find_all('a') if not item.get('class') and not item.get('target') and item.get('title') and not 'Wikipedia:' in item.get('title') and not 'Category:' in item.get('title') and not 'Help:' in item.get('title') and not 'Portal:' in item.get('title') and not 'Special:' in item.get('title') and not 'Talk:' in item.get('title') and not 'Template:' in item.get('title') and not 'File:' in item.get('title') and 'Edit section:' not in item.get('title') and 'Commons:' not in item.get('title') and not item.get('title') in step_words][0]
|
||||
step_words.append(item.get('title'))
|
||||
#print item.get('title') + "\n"
|
||||
url = 'https://en.wikipedia.org%s' % item.get('href')
|
||||
steps += 1
|
||||
return step_words
|
||||
|
||||
def get_philosophy(word, max_steps=20):
|
||||
step_words = [word]
|
||||
steps = 0
|
||||
|
||||
url = "https://en.wikipedia.org/wiki/%s" % word
|
||||
while steps < max_steps:
|
||||
soup = BeautifulSoup(urllib.urlopen(url).read(), "html.parser")
|
||||
title = soup.find("h1", id="firstHeading")
|
||||
content = soup.find("div", id="mw-content-text")
|
||||
if not content:
|
||||
break
|
||||
item = [
|
||||
item
|
||||
for item in content.find_all("a")
|
||||
if not item.get("class")
|
||||
and not item.get("target")
|
||||
and item.get("title")
|
||||
and not "Wikipedia:" in item.get("title")
|
||||
and not "Category:" in item.get("title")
|
||||
and not "Help:" in item.get("title")
|
||||
and not "Portal:" in item.get("title")
|
||||
and not "Special:" in item.get("title")
|
||||
and not "Talk:" in item.get("title")
|
||||
and not "Template:" in item.get("title")
|
||||
and not "File:" in item.get("title")
|
||||
and "Edit section:" not in item.get("title")
|
||||
and "Commons:" not in item.get("title")
|
||||
and not item.get("title") in step_words
|
||||
][0]
|
||||
step_words.append(item.get("title"))
|
||||
# print item.get('title') + "\n"
|
||||
url = "https://en.wikipedia.org%s" % item.get("href")
|
||||
steps += 1
|
||||
return step_words
|
||||
|
||||
|
||||
def containsAny(str, set):
|
||||
return 1 in [c in str for c in set]
|
||||
|
||||
|
||||
def get_philosophy_lower(word, max_steps=20):
|
||||
step_words = [word]
|
||||
steps = 0
|
||||
|
||||
url = 'https://en.wikipedia.org/wiki/%s' % word
|
||||
while steps < max_steps:
|
||||
soup = BeautifulSoup(urllib.urlopen(url).read(), 'html.parser')
|
||||
title = soup.find('h1', id='firstHeading')
|
||||
content = soup.find('div', id='mw-content-text')
|
||||
if not content:
|
||||
break
|
||||
links = [item for item in content.find_all('a') if not item.get('class') and item.text and item.text[0].islower() and not containsAny(item.text, ':()') and item.get('title') and not containsAny(item.get('title'), ':()') and not item.get('title') in step_words]
|
||||
if not links:
|
||||
step_words.append("(dead end)")
|
||||
break
|
||||
item = links[0] #grab the first good link item
|
||||
#print "Checking %s %s" % (item.get('title'), item.text)
|
||||
step_words.append(item.get('title'))
|
||||
if item.get('title') == 'Philosophy':
|
||||
break
|
||||
#print item.get('title') + "\n"
|
||||
url = 'https://en.wikipedia.org%s' % item.get('href')
|
||||
steps += 1
|
||||
return step_words
|
||||
step_words = [word]
|
||||
steps = 0
|
||||
|
||||
url = "https://en.wikipedia.org/wiki/%s" % word
|
||||
while steps < max_steps:
|
||||
soup = BeautifulSoup(urllib.urlopen(url).read(), "html.parser")
|
||||
title = soup.find("h1", id="firstHeading")
|
||||
content = soup.find("div", id="mw-content-text")
|
||||
if not content:
|
||||
break
|
||||
links = [
|
||||
item
|
||||
for item in content.find_all("a")
|
||||
if not item.get("class")
|
||||
and item.text
|
||||
and item.text[0].islower()
|
||||
and not containsAny(item.text, ":()")
|
||||
and item.get("title")
|
||||
and not containsAny(item.get("title"), ":()")
|
||||
and not item.get("title") in step_words
|
||||
]
|
||||
if not links:
|
||||
step_words.append("(dead end)")
|
||||
break
|
||||
item = links[0] # grab the first good link item
|
||||
# print "Checking %s %s" % (item.get('title'), item.text)
|
||||
step_words.append(item.get("title"))
|
||||
if item.get("title") == "Philosophy":
|
||||
break
|
||||
# print item.get('title') + "\n"
|
||||
url = "https://en.wikipedia.org%s" % item.get("href")
|
||||
steps += 1
|
||||
return step_words
|
||||
Reference in new issue
Block a user