我在myanimelist.net上有前往不同动漫的URL列表。对于每种动漫,我想获取可以在网站上找到的每种动漫的流派文字,并将其添加到字符串列表中(每种动漫都有一个元素,如果列出了5种流派,则不是5个单独的元素)
这是myanimelist.net上动漫的HTML code。我想本质上将流派文本放在图像的顶部,并放入一个列表中,因此在所示图像中,它在列表中的条目将为["Mystery, Police, Psychological, Supernatural, Thriller, Shounen"]
,对于列表中的每个url,另一个字符串包含该流派的该动漫将被添加到列表中。
这是我代码的主要部分
driver = webdriver.Firefox()
flist = [url1, url2, url3] #List of urls
genres = []
for item in flist:
driver.get(item) #Opens each url
elem = driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[3]/div[2]/table/tbody/tr/td[1]/div/div[16]").text
genres.append(elem)
该代码适用于某些动漫,不适用于其他动漫。有时某些动漫的立场有所不同,我没有获得有关流派的信息,而是获得有关制作动漫的工作室的信息,等等。
我想要的是在span类中指定“流派:”,并获得其下方列出的流派,如上图所示。我似乎找不到与我要找的东西相似的东西(尽管我可能只是不对我的问题措辞不当以及缺乏使用xpath的经验)
答案 0 :(得分:1)
driver.get('https://myanimelist.net/anime/35760/Shingeki_no_Kyojin_Season_3')
links = driver.find_elements_by_xpath("//div[contains(string(), 'Genres')]/a[contains(@href,'genre')]")
for link in links:
title= elem.get_attribute("title")
genres.append(title)
print(genres)
genresString = ",".join(genres)
print(genresString)
样本输出:
['Action', 'Military', 'Mystery', 'Super Power', 'Drama', 'Fantasy', 'Shounen']
Action,Military,Mystery,Super Power,Drama,Fantasy,Shounen