我计划从以下网站html链接中提取数据:http://movie.walkerplus.com/list/2015/12/
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数据和出演キャス
例如スティーヴ·マーティノ,鈴木福芦田愛菜小林星蘭
我的代码如下所示:
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如下所示。
監督
セルゲイ·ボドロフ
出演キャスト
鈴木福芦田愛菜小林星蘭
实际上,我只想提取以下数据,不包括:監督和出演キャスト.And我想打印标题,描述,导演和角色,而不仅仅是导演和角色。此外,我希望提取这些数据并将其存储到一个数据库中,该数据库有一个表,其中包含四列:标题、描述、导演和角色。
セルゲイ·ボドロフ
鈴木福芦田愛菜小林星蘭
提前感谢!
发布于 2016-05-31 19:19:33
并不是第一页上的每一部电影(即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)https://stackoverflow.com/questions/37543091
复制相似问题