2016-05-31 85 views
0

我打算fromthe以下網站的HTML 鏈接提取數據: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> 

我想所有在這個網站的方向列表數據和出演キャス

如スティーヴ·マーティノ, 鈴木福蘆田愛菜小林星蘭

我的代碼顯示如下:

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()) 

我有成功的MOVIE_TITLE和movie_description, 但movie_directors和movie_roles顯示如下。

監督

セルゲイ·ボドロフ

出演キャスト

鈴木福 蘆田愛菜 小林星蘭

其實,我只是想提取以下的數據,不包括:監督並出演キャスト。我想打印標題,描述,導演和角色,而不僅僅是導演和角色。此外,我想提取這些數據並將其存儲到一個包含四列的數據庫:標題,說明,導演和角色。

セルゲイ·ボドロフ

鈴木福 蘆田愛菜 小林星蘭

提前感謝!

回答

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

謝謝您的回答。我想打印標題,描述,導演和角色,而不僅僅是導演和角色。我想提取這些數據並將其存儲到一個數據庫中,該數據庫包含四列:標題,說明,導演和角色。 –