我正在抓取一个具有以下结构的网站:
<div class="cr__stores-list">
<div class="cr__stores-item">store1</div>
<a href="/stores/store1/">
<div class="cr__stores-item-b">
<div class="cr__container-name">
<h3 class="cr__container-name-title cr__text--subtitle3 cr__textColor--colorDark300">
Store Name
</h3>
</div>
</div>
</div>
<div class="cr__stores-item">store2</div>
...
...
<div class="cr__stores-item">store3</div>
<div class="cr__stores-item">store4</div>
</div>
每个“div^{cl 1}”$
到目前为止,我有以下代码:
wd = webdriver.Chrome('chromedriver', options=options)
wd.get('stores_url')
element = WebDriverWait(wd, 20).until(EC.presence_of_element_located((By.CLASS_NAME, "cr__stores-list")))
list_stores_tags = element.find_elements_by_class_name("cr__stores-item")
for store_tag in list_stores_tags:
# store_tmp = store_tag.find_element_by_class_name("cr__container-name-title cr__text--subtitle3 cr__textColor--colorDark300")
# store_tmp = store_tag.find_element_by_css_selector('h3.cr__container-name-title cr__text--subtitle3 cr__textColor--colorDark300')
store= store_tmp.text
url_tmp = store_tag.find_element_by_tag_name("a")
url = url_tmp.get_attribute('href')
这两行注释是我尝试获取商店名称的结果。 有了这段代码,我成功地获得了每个商店的所有URL,没有问题。 但是,我无法获取存储名称。按类名称查找元素和按css选择器查找元素似乎都不起作用,因为在这两种情况下,我都会遇到异常:
消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:.cr__容器-name-title cr__文本--subtitle3 cr__文本颜色--colorDark300”} (会话信息:无头镀铬=87.0.4280.88)
或
消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“h3.cr_uu容器-name-title cr_u文本--subtitle3 cr_u文本颜色--colorDark300”} (会话信息:无头镀铬=87.0.4280.88)
我做错了什么?欢迎提出任何建议。 谢谢
您错误地使用了
find_element_by_css_selector
。试一试注意点而不是空格
相关问题 更多 >
编程相关推荐