2016-11-29 3 views
1

Я использую этот код для утилизации некоторых данных по ссылке https://website.grader.com/results/www.dubizzle.com. Поскольку фактический скрипт с тегами, которые я хочу извлечь нагрузки после 15 секунд загрузки, кто-то рекомендовал мне selemuim ввести задержку в коде. Поэтому я использую этот кодОшибка Traceback при использовании селена с библиотекой python beautifulsoup

код, как показано ниже

#!/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, а затем предоставив ему путь экспорта PATH = $ PATH:/home/geckodriver, как рекомендовал кто-то по имени @Ahn S Мит здесь

Теперь, когда я запустить программу, она дает эту ошибку

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 

ответ

1

Есть два способа, чтобы указать Селен к соответствующему WebDriver. Вы можете передать его в качестве параметра:

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

Или вы можете создать локальные переменные оболочки, содержащие PATH:

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

Я думаю, ваша проблема в том, что вы экспортирование PATH переменного в geckodriver а не в папку, содержащую ее.

+0

- путь/должен/должен быть таким, какой он есть? geckodriver находится в домашнем каталоге, поэтому я должен поставить драйвер = webdriver.Firefox (executable_path = '/ path/to/geckodriver') – info

+0

Если вы передаете параметр 'executable_path', вы должны включить полный путь, включая geckodriver. Если вы добавляете переменную 'PATH' в свою оболочку, вы должны указать только путь к каталогу, содержащему geckodriver. – jinksPadlock

+0

Пожалуйста, проверьте мой ответ на код и ошибку. Я поставил geckodriver в домашний каталог – info

 Смежные вопросы

  • Нет связанных вопросов^_^