- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个Python代码,可以废弃不同的数据。例如,它从 HTML code 中删除 Website
:
<a data-ix="show-popup-on-click" target="_blank" rel="nofollow" href="https://mylink.org/" class="button full w-button" style="transition: all 0.4s ease 0s;">Website</a>
它工作正常,但现在失败并出现错误:
NoSuchElementException: Message: {"errorMessage":"Unable to find element with link text 'Website'","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"95","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:40581","User-Agent":"Python http auth"},"httpVersion":"1.1","method":"POST","post":"{\"using\": \"link text\", \"sessionId\": \"a7a441f0-0f6a-11e8-ad3a-6121f74a30f4\", \"value\": \"Website\"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/a7a441f0-0f6a-11e8-ad3a-6121f74a30f4/element"}} Screenshot: available via screen
这是我的代码:
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.set_window_size(1120, 550)
driver.get(link)
driver.implicitly_wait(10)
website = driver.find_element_by_link_text("Website").get_attribute("href")
我做错了什么?
更新:
<div class="column-space w-col w-col-4">
<a data-ix="show-popup-on-click" target="_blank"
rel="nofollow" href="https://example.com/"
class="button full w-button"
style="transition: all 0.4s ease 0s;">Website</a>
<div class="space big"></div>
<a target="_blank" rel="nofollow"
href="https://example.com/storage/b/2/0/2/WhitepaperLive.pdf"
class="button-2 w-button">Whitepaper</a>
<div class="space big"></div>
<a class="button-2 w-condition-invisible w-button">Program</a>
<div class="space big w-condition-invisible"></div>
<div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Token:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">UTC</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Price:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">1 LUC=0,05 USD</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Buy with:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">USD, EUR</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Platform:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">MyPlatform</div>
</div>
</div>
<div class="div-block-4 w-clearfix w-condition-invisible">
<div class="div-block-2">KYC:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">No</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">KYC:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">Yes</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Location:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">Malta</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Can't join:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">USA</div>
</div>
</div>
<div class="space big"></div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Start:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">January 25, 2018</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">End:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">February 5, 2018</div>
</div>
</div>
<div class="space big"></div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">Start2:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">February 12, 2018</div>
</div>
</div>
<div class="div-block-4 w-clearfix">
<div class="div-block-2">End2:</div>
<div class="div-block-5 w-clearfix">
<div class="text-block-12">March 5, 2018</div>
</div>
</div>
<div>
<div class="div-block-33">
<div class="space big"></div>
<div>
<a target="_blank" rel="nofollow"
class="button green full w-condition-invisible w-button">JOIN WHITELIST NOW »</a>
<div class="div-block-34">
<a target="_blank" rel="nofollow" href="http://we-do-not-have-slack.com"
class="link-block-2 w-inline-block">
<img src="https://global-uploads.webflow.com/903_slack-symbol.png" alt="ICO Slack link">
</a>
<a target="_blank" rel="nofollow" href="https://twitter.com/live" class="link-block-2 w-inline-block">
<img src="https://global-uploads.webflow.com/f4000142b091_twitter%20(1).png" width="16" alt="ICO Twitter link">
</a>
<a target="_blank" rel="nofollow" href="https://t.me/live" class="link-block-2 w-inline-block">
<img src="https://global-uploads.webflow.com/790001798dfe_telegram.png" alt="ICO Telegram link">
</a>
<a target="_blank" rel="nofollow" href="http://we-do-not-have-GitHub.com" class="link-block-2 w-inline-block">
<img src="https://global-uploads.webflow.com/59cf77c1fb0edc0001b4b26a_github-logo.png" alt="ICO GitHun link">
</a>
<a target="_blank" rel="nofollow" href="https://www.facebook.com/Play2Live-504880049864038/" class="link-block-2 w-inline-block">
<img src="https://global-uploads.webflow.com/59cf77c1fb0edc0001b4b117/59d510290116ac0001964c8e_facebook.png" alt="Facebook link">
</a>
<a target="_blank" rel="nofollow" href="https://talk.org/index.php?topic=2381679.0" class="link-block-2 w-inline-block">
<img src="https://global-uploads.webflow.com/0011f8c3c_talk.jpg" alt="Talk link">
</a>
</div>
</div>
</div>
</div>
</div>
</div>
最佳答案
代码中没有问题,在检查网页中的网站
链接时,我可以看到文本为“网站”,但如果我使用相同的文本通过链接文本查找元素,例如下面我收到 NoSuchElementException
website = driver.find_element_by_link_text("Website").get_attribute("href")
print(website)
我尝试过给予“等待”并使用 partial_link_text
但没有运气。
然后我尝试获取标签名称“a”的所有元素并使用以下代码打印文本。
elements = driver.find_elements_by_tag_name("a")
for element in elements:
print(element.text)
后来我才知道这不是“网站”而是“网站”。但我不确定为什么它会这样。
将网站上的所有字符更改为大写后,我能够识别该元素并从中获取 href
。
driver.get("https://topicolist.com/ico/adhive")
website = driver.find_element_by_link_text("WEBSITE").get_attribute("href")
print(website)
希望它能解决您的问题。
关于python - 基于 Selenium 的抓取代码失败并出现错误 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736196/
此查询由 2 个相关问题组成。在进行下一步之前,我需要等待元素不可见,因此我尝试定义一个自定义方法,如下所示: public void waitToDisappear(long timeOutInSe
所以我有一个一年前编写的相当大的 java 应用程序,我试图再次理解它。我正在查看代码中的一个方法,其中明显存在出现 NoSuchElementException 的风险:我正在使用任意字符串构造的扫
我开始通过简单地读取数据文件来做练习。当我运行该程序时,数据文件被读取但没有读取,但出于某种原因我仍然收到“NoSuchElementException”并且我的输出没有按照预期的方式格式化。这是正在
我正在尝试逐行读取一个大型 csv 文件,以查找其中字符串出现的次数。 这是执行此操作的代码: public int getOffset(File file, String searched) thr
我的代码在使用扫描仪的每一行上都给出了 NoSuchElementException 异常。我的其余代码工作正常。 import java.io.*; import java.util.*; impo
当我运行我的程序时,我在 Eclipse 控制台中得到了这个: Type a number then press enter. 1. Add a customer 2. Add an order 3.
我想知道是否有人可以帮助解决我的程序中的 NoSuchElements 异常,该程序扫描非常大的文本,然后将其添加到 ArrayList 中。 我尝试重新排列代码的顺序,看看是否可以修复它,但现在我不
for (final ArrayList smartPhones : smartPhonesCluster) { new Thread(new Runnable() { @Ov
我想在客户端读取时设置超时。该例程应该抛出 InterruptedIOException,但它在 System.out.println("echo: " + _in.nextLine()); 上抛出
我在功能检查冲突方面遇到问题。无论我做什么,它都会抛出 NoSuchElementException。这是: public boolean isColliding(Pixel a) { if(
如果在读取文件时缺少字段,我应该捕获 NoSuchElementException。如果缺少一个字段,我只需要跳到文件的下一行。我的问题是,我在哪里实现我的 try/catch 代码来做到这一点?这是
我正在开发一种解析器(业余爱好项目),它采用 Cpp 文件,读取文件中的注释,然后尝试基于该文件创建头文件。 我面临的问题是当java.util.Scanner即将读取第一行时。程序停止并给出 NoS
我的任务是: 创建一个包含 2 列数字的文件:距离和速度。 编写一个 TravelInfo 类,其中包含三部分信息:速度、时间、距离。 该类还应该有一个方法 calcTime(),用于根据距离和速度计
在过去的几个小时里,我一直对迭代器感到震惊。 当我执行Iterator时,得到NoSuchElementException 代码 new Thread() { @Overrid
我尝试了许多不同的方法来修复该错误。我知道这与 hasNext 有关,我只是不确定错误在哪里。请帮忙。另外,如果有人能告诉我如何从 getLargestQuantityItem 方法将变量larges
代码在 Gitbash 命令行 (GitHub) 中正确运行。但是,当我在 NetBeans 中编译并运行它时,它给出了 NoSuchElement Exception。如果有人可以帮助我使用 Net
从队列中删除时,我有时会收到 NoSuchElementException 。我需要使用锁/等待/其他一些延迟机制吗? 我提供了代码的粗略翻译。 带队列的线程 public void run(){ w
如何删除代码中的 NoSuchElementException ?我也在应用 hasNextLine 但它也没有接受它。 public static void main (String[] a
我已经做了一些研究,但一无所获。 这是我的代码: public void play(){ System.out.print("Make your choice ( R - P - S) : "
自从我醒来以来,我一直在尝试让它工作,但我根本无法弄清楚是什么导致了这个异常。 try { scan = new Scanner(new File("dictionary.txt"))
我是一名优秀的程序员,十分优秀!