我试图学习如何使用beautifulsoup + python进行网页剪贴画,我想从https://letterboxd.com/film/donnie-darko/中获取电影摄影师的名字,但我无法弄清楚如何隔离文字。我想要的html如下所示,我要输出的是"史蒂文海报":
<h3><span>Cinematography</span></h3>
<div class="text-sluglist">
<p>
<a href="/cinematography/steven-poster/" class="text-slug">Steven Poster</a>
</p>
</div>
在我的代码中我已经完成了soup.find(text =&#34; Cinematography&#34;),以及混合不同的问题,比如试图从a和p标签中找到item或get_text,但是......
答案 0 :(得分:1)
我会使用正则表达式来解析汤对象以获得包含“cinematography”的链接。
{{1}}
答案 1 :(得分:0)
您也可以在不使用正则表达式的情况下执行相同的操作:
import requests
from bs4 import BeautifulSoup
res = requests.get('https://letterboxd.com/film/donnie-darko/')
soup = BeautifulSoup(res.text,'lxml')
item = soup.select("[href*='cinematography']")[0].text
print(item)
输出:
Steven Poster
答案 2 :(得分:-1)
使用CSS部分文本选择器:
soup.find('a[href*="cinematography"]').text