我正在尝试使用selenium python编写代码。 我像https://www.thewatchcartoononline.tv/anime/south-park-season-1一样在现场工作。正如您所看到的,本页面是本系列的页面,包含本系列所有插曲的链接。 我想获得给定情节的链接(用户选择哪一个)
重要的是要注意,并非每个系列页面都有相同的剧集命名格式,一些系列的链接文本中只有“第1集”,其他可能有“南方公园第一季第1集”的链接,所以我不能指望链接文本的命名格式
这是我用来获取该插曲链接的代码(episode_num
由用户提供)
episode_num = 1
chrome_driver = Chrome()
chrome_driver.get("https://www.thewatchcartoononline.tv/anime/south-park-season-1")
# This xpath takes you to the div of the episode list and then it search for a link which has a certain text in it
links = chrome_driver.find_elements_by_xpath(
f"//*[@id='sidebar_right3']//"
f"a[contains(text(), 'Episode {episode_num}')]"
)
然而,当我检查links
时,我看到有不止一个链接。我得到了第1集和第10集(因为它们都包含字符串“第1集”)
有没有办法只获得我想要的链接?(可能是为了让selenium获取我想要的文本后没有任何数字的链接)
尝试以下
xpath
。使用last()选项,这将给出计数1编辑:
嗯,有点难看,但在Xpath 1.0中,我认为这是最好的选择
为
episode_num = 10
查找第10-11集,但不为episode_num = 11
查找第10-11集检查:
Episode x
在text()
text()
以Episode x
结尾Episode x-
在text()
我正在检查这些剧集的网址。依赖
@href
而不是text()
不是更好的方法吗?这稍微短一点:检查:
episode-x-
在url中吗episode-x
结尾相关问题 更多 >
编程相关推荐