我正在尝试访问超链接文本,这些文本将始终存储为嵌套在某个网站上的100 div标签中的最后一个超链接标记。在下面的例子中,“00A17”将是我试图从单个标签中提取的内容。
HTML代码:
<div class="headlineText">
<a class="mrnum" title="Full MathSciNet Item" href="/mathscinet/search/publdoc.html?arg3=&co4=AND&co5=AND&co6=AND&co7=AND&dr=all&extend=1&l=100&pg4=AUCN&pg5=TI&pg6=PC&pg7=ALLF&pg8=ET&review_format=html&s4=&s5=&s6=&s7=%22Featured%20Review%22&s8=Journals&sort=Newest&vfpref=html&yearRangeFirst=&yearRangeSecond=&yrop=eq&r=9&mx-pid=2650657"><strong>MR2650657</strong></a>
<a class="item_status" href="/mathscinet/help/fullitem_help_full.html#indexed"><span>Indexed</span></a>
<a href="/mathscinet/search/author.html?mrauthid=115370">Logan, J. David</a> <span class="title"><span class="searchHighlight">Featured review</span>: <span class="it">Introduction to the foundations of applied mathematics</span> [<a href="/mathscinet/search/publdoc.html?pg1=MR&s1=2526777&loc=fromrevtext">MR2526777</a>].</span>
<a href="/mathscinet/search/journaldoc.html?id=5174"> <em>SIAM Rev.</em></a> <a href="/mathscinet/search/publications.html?pg1=ISSI&s1=281478"> 52 </a>
<a href="/mathscinet/search/publications.html?pg1=ISSI&s1=281478"> (2010), </a>
<a href="/mathscinet/search/publications.html?pg1=ISSI&s1=281478"> no. 1,</a> 173–178.
<a href="/mathscinet/search/mscdoc.html?code=00A17">00A17</a>
</div>
我写的代码尝试这基本上是一团糟
用于远程访问的Python代码:
headlineTexts = []
mscLinks = []
for x in range(2,102):
headlineTexts.extend(driver.find_elements_by_xpath("//*[@id='content']/form/div[3]/div[2]/div/div/div[%d]/div[2]"%x))
mscLinks.extend(headlineTexts[x-2].find_elements_by_tag_name("a")[last()])
基本上,有100个“headlineText”div标签(索引从2到101),我需要从每个标签中获取上述超链接文本(因此迭代)。我基本上创建了headlineText元素的列表,然后对于每个headlineText元素,我试图提取标签名为“a”的最后一个子元素。不幸的是,当我尝试运行时,我得到了一个
TypeError:'WebElement'对象不可迭代
这对我来说很奇怪,因为我只使用复数find_elements()并且应该生成一个可迭代列表。我可能错误地使用last()吗?
答案 0 :(得分:4)
检索将始终存储为嵌套在某个网站上的100 div标签中的最后一个超链接标记的超链接文本,例如 00A17 您可以使用以下代码行:
print(driver.find_element_by_xpath("div[@class='headlineText']//a[last()]").get_attribute("innerHTML"))