python - 请教2个BeautifulSoup匹配豆瓣top250电影的优雅实现?
大家讲道理
大家讲道理 2017-04-18 09:54:21
[Python讨论组]

豆瓣top250电影的链接

肖申克的救赎  / The Shawshank Redemption  / 月黑高飞(港) / 刺激1995(台)

导演: 弗兰克·德拉邦特 Frank Darabont   主演: 蒂姆·罗宾斯 Tim Robbins
1994 / 美国 / 犯罪 剧情

网页的dom一般都是以这样的形式排列的,想请教两点:

以电影名来说,有两个标签的class都是title,我这种原始方法会匹配两个title,有什么方法可以只匹配第一个中文title呢?

titles = soup.find_all(name='span', attrs={'class': 'title'})

导演和主演栏目

标签的class为空,请问beautifulsoup中有什么方法可以匹配到这个标签内的内容呢?


补充

下面这种实现并不行,因为豆瓣一个页面的话有25个电影,有40多个这样的title标签,没有50个的原因是国产电影没有英文名只有一个title

titles = soup.find_all(name='span', attrs={'class': 'title'})[0].text

如果它有50个标签还好,我可以通过列表推倒式来排除偶数的title的标签,但是国产电影没有英文名,它只会有一个title标签,所以这种实现并不完美。

[title for index, title in enumerate(titles) if index % 2 == 0]
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号