python - 将 selenium 与 python beautifulsoup 库一起使用时出现回溯错误

标签 python selenium selenium-webdriver beautifulsoup

我正在使用此代码从链接 https://website.grader.com/results/www.dubizzle.com 中删除一些数据。因为带有标签的实际脚本我想在加载 15 秒后提取加载,所以有人建议我使用 selemuim 在代码中引入延迟。因此我使用这段代码

代码如下

#!/usr/bin/python
import urllib
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from bs4 import BeautifulSoup
from dateutil.parser import parse
from datetime import timedelta
import MySQLdb
import re
import pdb
import sys
import string



driver = webdriver.Firefox()
driver.get('https://website.grader.com/results/dubizzle.com')
time.sleep(25)
html = driver.page_source
soup  = BeautifulSoup(html)


# print soup

Sizeofweb=""
try:

    Sizeofweb= soup.find('span', {'data-reactid': ".0.0.3.0.0.3.$0.1.1.0"}).text
    print Sizeofweb.get_text().encode("utf-8")

except StandardError as e:
    converted_date="Error was {0}".format(e)
    print converted_date

我提取的html部分如下

快照:https://www.dropbox.com/s/7dwbaiyizwa36m6/5.PNG?dl=0

<div class="result-value" data-reactid=".0.0.3.0.0.3.$0.1.1">
<span data-reactid=".0.0.3.0.0.3.$0.1.1.0">1.1</span>
<span class="result-value-unit" data-reactid=".0.0.3.0.0.3.$0.1.1.1">MB</span>
</div>

我通过从这里下载 geckodriver 并将其解压到/home 目录来安装 geckodriver,然后按照此处名为 @Ahn Smith 的人的建议为其提供路径导出 PATH=$PATH:/home/geckodriver

现在当我运行程序时,它给出了这个错误

Traceback (most recent call last):
  File "ahmed.py", line 17, in <module>
    driver = webdriver.Firefox()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 140, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 74, in start
    stdout=self.log_file, stderr=self.log_file)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 20] Not a directory

最佳答案

有两种方法可以将 Selenium 指向适当的网络驱动程序。您可以将其作为参数传递:

driver = webdriver.Firefox(executable_path='/path/to/geckodriver')

或者您可以创建一个包含 PATH 的本地 shell 变量:

$ export PATH=$PATH:/path/to/

我认为您的问题是您将 PATH 变量导出到 geckodriver,而不是导出到包含它的文件夹。

关于python - 将 selenium 与 python beautifulsoup 库一起使用时出现回溯错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40865395/

相关文章:

python - Tensorflow Inception v3 再训练 - 将文本/标签附加到单个图像

java - 无法将文本发送到文本框元素

c# - 尝试通过右键单击 Web 元素打开新选项卡但无法

selenium - session 未创建异常 : Message: session not created: This version of ChromeDriver only supports Chrome version 81

python - 如何在训练有素的网络上实现 Grad-CAM

python - 如何从校准的摄像机流中显示正确的视频图像?

c# - 如果元素在表格上的元素内部有文本,则测试失败

python - Selenium:元素不可点击......其他元素将收到点击

python - 相当于 pyGTK 中的 "weight"参数?

java - 在另一台计算机上使用 Selenium 的 WebDriver 运行 Java 程序