我已经编写了一个在python脚本中使用的选择器,它能够根据它的索引从网页中获取电影名称。我只想得到两部电影的名字[我再说一遍,两部电影]无论是1,2或3,4或15,16什么的。基本上我的意图是加入两个索引来制作一个单独的选择器?在这种情况下,我使用两个索引0和1来制作一个带有“+”操作的单个选择器来连接它。我相信应该有更聪明的方法来做同样的事情。更具体地说,请参见以下示例:
import requests ; from bs4 import BeautifulSoup
soup = BeautifulSoup(requests.get("https://yts.ag/browse-movies").text,'html.parser')
movie = soup.select(".browse-movie-title")[0].text + soup.select(".browse-movie-title")[1].text
print(movie)
结果如下:
它来自夜间Mindhorn
编辑:
为了清楚我在下面所说的内容:
列出结果:
['Mindhorn', 'Dead Again in Tombstone']
换行结果:
Mindhorn
Dead Again in Tombstone
预期产出:
Mindhorn Dead Again in Tombstone
答案 0 :(得分:1)
使用列表理解,您可以获得n
首部电影的标题:
movies = [m.text for m in soup.select(".browse-movie-title")][:n]
然后,如果您愿意,可以将结果打印到不同的行:
print('\n'.join(movies))
编辑:显然,BeautifulSoup不支持某些CSS伪类,如nth-child
,否则您可以限制查询中的子节点数。对于记录,此选择器适用于Chrome控制台:
section .row .browse-movie-wrap:nth-child(-n+2)