我已经在python中编写了一个脚本,用于从torrent站点收集电影名称及其类型。由于BeautifulSoup
不支持伪选择器,我找到了一种克服这一点的技术。我现在面临的唯一问题是,要获得结果,下面脚本中的反转文本必须是精确的。有没有什么方法可以使用类似于:contains
属性的东西,就像部分匹配一样,这样即使我的查询中的文本包含部分单词,我仍然会解析Genre
之后的Gen
。 [预计会在脚本中使用nre:
或enr
或Genre:
代替import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(requests.get("https://www.yify-torrent.org/search/1080p/").text,"lxml")
for title in soup.select("div.mv"):
names = title.select("h3 a")[0].text
genre = ' '.join([item.next_sibling for item in title.select(".mdif li b") if item.text=="Genre:"])
print(names, genre)
这是脚本:
Swelter (2014) 1080p Action
Larry Crowne (2011) 1080p Comedy
Terminal Island (1973) 1080p Action
Heart of Midnight (1988) 1080p Drama
The Lift (1983) 1080p Fantasy
结果:
ng-repeat
答案 0 :(得分:1)
您只需使用in
运算符来检查字符串是否包含substring:
genre = ' '.join([item.next_sibling for item in title.select(".mdif li b") if "Genre:" in item.text])
您可以使用if "Genre:" in item.text
以及if "nre:" in item.text
,if "Gen" in item.text
等...