举个例子,我想在SO上记录所有用户。
让我说我加载了:How to click an element in Selenium WebDriver using JavaScript
我点击了所有用户:.user-details a(其中11个)
我写了提取文字 - >到csv。
driver.get(“Version compatibility of Firefox and the latest Selenium IDE (2.9.1.1-signed)”)
我从csv读取了用户。
用户:Ripon Al Wasim [再次出现,不要点击他] ???如何实现这一目标。正如其文字。
这样的事情是否可以实现,或者这是selenium python的限制?
你可以点击所有这些,但是让我们说你必须刮掉200页,而常用的名字Bob会弹出430次。我觉得没必要点击他的名字。 Selenium可以这样吗?
我觉得我错过了一些东西,这是可以实现的,但我不知道如何。
您可以比较文本文件的文本和print(elem.get_attribute("href"))
- >将其写入文件并进行比较。如果元素存在,删除它们但这是文本。您可以(可能)将文本放在excel文件中。我不完全确定这是否可行,但您可以在Excel中的文本旁边单独编写css元素。并删除匹配字符串的行。然后让Selenium将其加载到Webdriver中。
我甚至不相信这会起作用。
是否有一种理智的方法可以点击css但忽略您已点击的文本文件中的名称。
答案 0 :(得分:1)
这里与Selenium没什么特别之处。这是您与浏览器交互的工具。您的程序需要决定如何进行交互,以及您对其中的信息做了什么。
听起来你想构建一个用户数据库,为什么不使用数据库呢?像SQLite或PostgreSQL这样的东西可能很适合你。 在用户详细信息中,存储链接中显示的名称(假设每个用户都是唯一的),并索引该名称。在抓取页面时,拉出该链接文本,然后使用SQL语句搜索该名称是否存在该记录,如果不存在,则单击该链接并添加新记录。