Skip to content

Instantly share code, notes, and snippets.

@k5trismegistus
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save k5trismegistus/fc6d2aacc999a7a6be90 to your computer and use it in GitHub Desktop.
Save k5trismegistus/fc6d2aacc999a7a6be90 to your computer and use it in GitHub Desktop.
タイトルの一部から検索可能
def search_from_keyword(keyword):
"""Search by keyword(Title) and return proposals"""
def get_metadata(div):
metadata = {}
metadata['Series'] = get_series(div)
metadata['Writer'] = get_writer(div)
metadata['Penciller'] = get_penciller(div)
metadata['Genre'] = get_genre(div)
date = get_date(div)
metadata['Year'] = date[0]
metadata['Month'] = date[1]
metadata['Day'] = date[2]
return metadata
def get_series(div):
raw_series = div.find('span', text='原題:').next_sibling.next_sibling
series = raw_series.string
return series
def get_writer(div):
raw_writer = div.find('span', text='サークル:').next_sibling.next_sibling
writer = raw_writer.string
return writer
def get_penciller(div):
raw_penciller = div.find('span', text='著者:').next_sibling.next_sibling
penciller = raw_penciller.string.split(',')
return penciller
def get_genre(div):
raw_genre = div.find('span', text='原作:').next_sibling.next_sibling
genre = raw_genre.string.split(',')
return genre
def get_date(div):
raw_date = div.find('b', text='発行日:').parent
raw_date.b.extract()
date = raw_date.string.split('-')
return date
keyword = urllib.parse.quote(keyword)
url = 'http://www.doujinshi.org/search/simple/?T=objects&sn=' + keyword
html = urllib.request.urlopen(url).read().decode('utf-8')
soup = bs4.BeautifulSoup(html)
div_bookinfos = soup.find_all('div', class_='bookinfo')
metadatas = []
for d in div_bookinfos:
m = get_metadata(d)
metadatas.append(m)
return metadatas
if __name__ == '__main__':
for i in search_from_keyword('東方浮世絵巻'):
print(i)
{'Series': '東方浮世絵巻 パチュリー・ノーリッジ', 'Writer': 'PARANOIA CAT', 'Year': ' 2006', 'Day': '31', 'Month': '12', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 八雲紫 PREVIEW版', 'Writer': 'PARANOIA CAT', 'Year': ' 2005', 'Day': '04', 'Month': '05', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 博麗霊夢', 'Writer': 'PARANOIA CAT', 'Year': ' 2005', 'Day': '30', 'Month': '12', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 短編再録集 2005', 'Writer': 'PARANOIA CAT', 'Year': ' 2006', 'Day': '23', 'Month': '04', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 八意 永琳', 'Writer': 'PARANOIA CAT', 'Year': ' 2006', 'Day': '13', 'Month': '08', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 河城にとり', 'Writer': 'PARANOIA CAT', 'Year': ' 2007', 'Day': '19', 'Month': '08', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 紅美鈴', 'Writer': 'PARANOIA CAT', 'Year': ' 2008', 'Day': '03', 'Month': '03', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 屈辱編 「泥舟タイタニックとおてんば恋娘の逆襲」', 'Writer': 'PARANOIA CAT', 'Year': ' 2005', 'Day': '18', 'Month': '09', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 八雲紫', 'Writer': 'PARANOIA CAT', 'Year': ' 2005', 'Day': '14', 'Month': '08', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 アリス・マーガトロイド', 'Writer': 'PARANOIA CAT', 'Year': ' 2005', 'Day': '21', 'Month': '03', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 番外編 「うどんげのお話」', 'Writer': 'PARANOIA CAT', 'Year': ' 2006', 'Day': '29', 'Month': '01', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 射命丸文', 'Writer': 'PARANOIA CAT', 'Year': ' 2008', 'Day': '17', 'Month': '08', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 魂魄妖夢', 'Writer': 'PARANOIA CAT', 'Year': ' 2005', 'Day': '23', 'Month': '01', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 東風谷早苗', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '08', 'Month': '03', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 ミルキーウェイの刹那的且つ情熱的な魔術符', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '16', 'Month': '08', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 短編再録集2', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '16', 'Month': '08', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 火焔猫の飼い方地獄鴉の育て方(委託版)', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '11', 'Month': '10', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 姉はあまアマ大魔法使い', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '31', 'Month': '12', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 「鬼退治偽物語」', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '31', 'Month': '12', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 微笑ナイフ', 'Writer': 'PARANOIA CAT', 'Year': ' 2010', 'Day': '05', 'Month': '05', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻「聖なる船の奇跡の軌跡」', 'Writer': 'PARANOIA CAT', 'Year': ' 2010', 'Day': '11', 'Month': '10', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 リメンバー・アリス', 'Writer': 'PARANOIA CAT', 'Year': ' 2011', 'Day': '16', 'Month': '01', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 火焔猫の飼い方・地獄鴉の育て方', 'Writer': 'PARANOIA CAT', 'Year': ' 2009', 'Day': '11', 'Month': '10', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻 再録集', 'Writer': 'PARANOIA CAT', 'Year': ' 2011', 'Day': '13', 'Month': '03', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
{'Series': '東方浮世絵巻「リメンバー☆アリス」PREVIEW', 'Writer': 'PARANOIA CAT', 'Year': ' 2010', 'Day': '31', 'Month': '12', 'Genre': ['東方Project'], 'Penciller': ['藤原俊一']}
Process finished with exit code 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment