Email myemail.com Mickey mo-6ren">
gpt4 book ai didi

python - Selen重复打印相同的信息

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:24 27 4
gpt4 key购买 nike

您好,我正在尝试从“dl”标签中包含数据的网站中抓取一些数据,这是网站结构的外观

<div class="ecord-overview col-md-5">
<h2><span itemprop="name">Donald Duck</span></h2>
dl class="row">
</dd>
<dt class="col-md-4">Email</dt>
<dd class="col-md-8">myemail.com</dd>
</dl>
<div class="ecord-overview col-md-5">
<h2><span itemprop="name">Mickey mouse</span></h2>
dl class="row">
</dd>
<dt class="col-md-4">Email</dt>
<dd class="col-md-8">youremail.com</dd>
</dl>
... data goes on but value differs

为了刮这个我正在使用 Selenium :

我的抓取代码

for element in driver.find_elements_by_class_name('ThatsThem-record-overview'): # here im scraping name
#print(Style.RESET_ALL)
print(Fore.RED + element.text + Style.RESET_ALL)
#print(Style.RESET_ALL)
time.sleep(1)
dl= driver.find_element_by_tag_name('dl') # scraping data under dl tag
print(dl.text)
print('-----------------------')# seperator

所以,每当我执行程序时,它都会为每个名称和数据打印相同的 dl 内容,如下所示

donald duck
Email
myemail.com
-------------
mickey mouse
Email
myemail.com

我已经尝试将 dl 放入 for 循环中,就像我打印名称一样,但它也打印了我不想要的其他内容

我能做什么?

最佳答案

driver.find_element_by_tag_name('dl')将始终返回第一个匹配元素。您需要使用element找到<dl>

for element in driver.find_elements_by_class_name('ThatsThem-record-overview'):
dl = element.find_element_by_tag_name('dl') # scraping data under dl tag
print(dl.text)

或者直接定位这些元素

for element in driver.find_elements_by_css_selector('.ThatsThem-record-overview dl'):
print(element.text)

关于python - Selen重复打印相同的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59751428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com