从html硒中读取元素

丹尼尔·普林斯露

我正在尝试使用硒记录tf2市场上的每个项目。我正在尝试在销售文件中记录每个项目的名称。是页面的链接。我认为这是一个标记,我只是不知道如何引用该名称并将其记录在文本文件中,而每个名称都在新行中。

<span id="result_0_name" class="market_listing_item_name" style="color; #7D6D00;">

编辑1:

我使用过alecxe的解决方案,它适用于第一页,我现在尝试运行它以选择下一个按钮,然后再次运行。但这无济于事,这就是我要尝试的。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

from selenium import webdriver
url="http://steamcommunity.com/market/search?appid=440#p1_popular_desc"
driver = webdriver.Firefox()
driver.get(url)

x=1
while x==1:
    WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.market_listing_row")))
    time.sleep(5)
    results = [item.text for item in driver.find_elements_by_css_selector("div.market_listing_row .market_listing_item_name")]
    time.sleep(5)
    driver.find_element_by_id('searchResults_btn_next').click()
    with open("output.dat", "a") as f:
        for item in results:
            f.write(item + "\n")

这会产生此错误

Traceback (most recent call last):
  File "name.py", line 14, in <module>
    results = [item.text for item in driver.find_elements_by_css_selector("div.market_listing_row .market_listing_item_name")]
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webelement.py", line 61, in text
    return self._execute(Command.GET_ELEMENT_TEXT)['value']
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webelement.py", line 402, in _execute
    return self._parent.execute(command, params)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 175, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 166, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: Element is no longer attached to the DOM
Stacktrace:
    at fxdriver.cache.getElementAt (resource://fxdriver/modules/web-element-cache.js:8956)
    at Utils.getElementAt (file:///tmp/tmpUpLsV7/extensions/[email protected]/components/command-processor.js:8546)
    at WebElement.getElementText (file:///tmp/tmpUpLsV7/extensions/[email protected]/components/command-processor.js:11704)
    at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpUpLsV7/extensions/[email protected]/components/command-processor.js:12274)
    at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpUpLsV7/extensions/[email protected]/components/command-processor.js:12279)
    at DelayedCommand.prototype.execute/< (file:///tmp/tmpUpLsV7/extensions/[email protected]/components/command-processor.js:12221)

任何帮助将不胜感激,即使它是指南的链接

ec

您可以从具有market_listing_item_name类名称的div元素中获取名称,这些元素位于具有market_listing_row类的元素中

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

from selenium import webdriver

url = "http://steamcommunity.com/market/search?appid=440"
driver = webdriver.Chrome()
driver.get(url)

# wait for results
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.market_listing_row")))

results = [item.text for item in driver.find_elements_by_css_selector("div.market_listing_row .market_listing_item_name")]

driver.quit()

# dump results to a file
with open("output.dat", "wb") as f:
    for item in results:
        f.write(item + "\n")

这是output.dat运行脚本后文件的内容

Mann Co. Supply Crate Key
The Powerhouse Weapons Case
The Concealed Killer Weapons Case
Earbuds
Bill's Hat
Gun Mettle Campaign Pass
Tour of Duty Ticket
Genuine AWPer Hand
Specialized Killstreak Kit
Gun Mettle Key

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在硒中查找元素

来自分类Dev

遍历Java中的所有HTML元素(硒测试)

来自分类Dev

硒*读取*提示中的文本

来自分类Dev

无法使用硒读取xpath元素

来自分类Dev

无法使用硒读取xpath元素

来自分类Dev

由于父窗口关闭,无法读取硒中的子窗口元素

来自分类常见问题

获取硒中的特定元素

来自分类Dev

提取硒中的隐藏元素

来自分类Dev

等待硒中的每个元素

来自分类Dev

在硒中定位元素

来自分类Dev

如何在下面的HTML中识别硒中的元素

来自分类Dev

如何在下面的HTML中识别硒中的元素

来自分类Dev

元素应为“ select”元素,但在硒中为“ span”元素

来自分类Dev

在硒中找不到元素时继续

来自分类Dev

定期检查元素中硒的存在

来自分类Dev

硒:在WordPress中查找页面元素

来自分类Dev

硒在C#中获取元素

来自分类Dev

如何针对硒中的嵌套元素

来自分类Dev

无法使用硒从网站中查找元素

来自分类Dev

从硒中的元素中选择特定字符

来自分类Dev

在硒中找不到元素时继续

来自分类Dev

在C#(硒)的DropDown中查找元素

来自分类Dev

如何用硒编辑表中的元素?

来自分类Dev

计算硒中“li”元素的数量

来自分类Dev

硒元素

来自分类Dev

我如何使用python硒读取html代码

来自分类Dev

在硒Python中无法从div元素中找到表格元素

来自分类Dev

硒隐藏元素:<select>中的隐藏<option>元素

来自分类Dev

元素仅在检查硒中的元素后可用