2016-05-31 8 views
0

私は、ウェブサイトのHTML リンク以下のfromtheデータを抽出することを計画:http://movie.walkerplus.com/list/2015/12/Pythonの3引っかきHTMLデータ

HTMLのいくつかの部分は、以下のように示されている:

<dl class="directorList"> 
<dt>監督</dt> 
<dd> 
<a href="/person/209306/" title="">スティーヴ・マーティノ</a> 
</dd> 
</dl> 
<dl class="roleList"> 
<dt>出演キャスト</dt> 
<dd> 
<a href="/person/226530/" title="">鈴木福</a> 
<a href="/person/228506/" title="">芦田愛菜</a> 
<a href="/person/266939/" title="">小林星蘭</a> 
</dd> 

私はすべて取得したいがこのサイト内のdirectionList dataと出演キャスス

スティーヴ・マーティノ、 鈴木福芦田愛菜小林星蘭

私のコードは、次のように示されている:私は成功しMOVIE_TITLEとmovie_description、 を持っているが、movie_directorsとmovie_rolesには、次のように示されている

from bs4 import BeautifulSoup 
from urllib.request import urlopen 

html = urlopen("http://movie.walkerplus.com/list/2015/12/") 
bsObj_movie = BeautifulSoup(html, "html.parser") 
print(bsObj_movie) 
movie_title = bsObj_movie.findAll({"h3"}) 
movie_description = bsObj_movie.findAll("p", {"class": "clearboth"}) 
movie_directors = bsObj_movie.findAll("dl", {"class": "directorList"}) 
movie_roles = bsObj_movie.findAll("dl", {"class": "roleList"}) 
for description in movie_description: 
    print(description.get_text()) 
for title in movie_title: 
    print(title.get_text()) 
for director in movie_directors: 
print(director.find('a').get_text()) 
for role in movie_roles: 
    print(role.get_text()) 

監督

セルゲイ・ボドロフ

出演キャスト

鈴木福 芦田愛菜 小林星蘭

が実は、私は次のようなデータを抽出したい、含まれていない:監督出演キャスト。そして、監督と役職だけでなく、タイトル、説明、監督、役割を印刷したい。さらに、私はこれらのデータを抽出して、テーブルを持つデータベースに格納します。テーブルには、タイトル、説明、ディレクター、役割の4つの列が含まれています。事前に

セルゲイ・ボドロフ

鈴木福 芦田愛菜 小林星蘭

ありがとう!私はそれらを除外して最初のページに

答えて

0

必ずしもすべての映画すなわちThe Royal Opera House Cinema Season 2015/16 Royal Opera "The Marriage of Figaro"はディレクターを持っている:あなたの答えのための

from bs4 import BeautifulSoup 
from urllib.request import urlopen 

html = urlopen("http://movie.walkerplus.com/list/2015/12/") 
soup = BeautifulSoup(html, "html.parser") 

data = soup.select("div.movie dl.directorList") 

for d in data: 
    title = d.select_one("a").text 
    description = d.find_previous("p", "clearboth").text 
    cast = ",".join([a.text.strip() for a in d.find_next("dl","roleList").select("dd a")]) 
    director = d.dd.a.text 
    print(title, director, cast, description) 
+0

感謝を。監督と役職だけでなく、タイトル、説明、監督、役割を印刷したいと思います。私はこれらのデータを抽出し、テーブルを有するデータベースに格納したい。タイトル、説明、ディレクター、役割の4つの列が含まれる。 –

関連する問題