2014-07-04 13 views
9

Python w/Selenium ve PhantomJS'de basit bir webscraping betiği kurdum. Kazıma için toplamda yaklaşık 200 URL var. Komut ilk önce 20-30 URL'lerden sonra iyi çalışır (başarısız olduğunda rastgele göründüğü gibi daha az/daha az olabilir ve herhangi bir URL ile ilgili olmayabilir) Python'da aşağıdaki hatayı alıyorum:Selenium GhostDriver'a bağlanamıyor (ancak bazen)

selenium.common.exceptions.WebDriverException: Message: 'Can not connect to GhostDriver' 

ve ghostdriver.log:

PhantomJS is launching GhostDriver... 
[ERROR - 2014-07-04T17:27:37.519Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140692115795456,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]} 

Ben aramalara ve SO üzerinde soruların çoğunu onlar bile tek bir URL koşamam görünmektedir. Komut dosyasının ortasında hatanın oluştuğu yeri bulduğum diğer tek soru ise this one ve cevabın phantomjs'i yaptığım son sürüme yükseltmektir. Diğer cevap, bu URL'yi tekrar denemeyi ve URL’nin tekrar başarısız olmasından dolayı iyi bir çözüm olmadığını söylüyor.

Python 2.7.6

for url in ['example.com/1/', 'example.com/2/', 'example.com/3/', .. , ..]: 
    user_agent = 'Chrome' 
    dcap = dict(DesiredCapabilities.PHANTOMJS) 
    dcap['phantomjs.page.settings.userAgent'] = user_agent 
    driver = webdriver.PhantomJS(executable_path='/usr/bin/phantomjs', desired_capabilities=dcap) 
    driver.get(url) 
+1

'row.url' nedir? –

+0

@PadraicCunningham: Typo. Sabit. –

+1

phantomjs'i nasıl kurdunuz? –

cevap

8

Linux Mint 17 phantomjs sürümü 1.9.7 ve selenyum sürümünü 2.42.1 çalıştırıyorum ben kaynağından gelen phantomjs yüklü bunu düzeltmek için aynı problem vardı. Diğer sistemler için

For Linux (Debian): 
sudo apt-get update 
sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev libxft-dev 
git clone git://github.com/ariya/phantomjs.git 
cd phantomjs 
git checkout 1.9 
./build.sh 

For Mac os: 
git clone git://github.com/ariya/phantomjs.git 
cd phantomjs 
git checkout 1.9 
./build.sh 

benim ghostdriver.log dosyayı okurken deniyor çünkü bunu anladım http://phantomjs.org/build.html

Optional : 
cd bin 
chmod +x phantomjs 
cp phantomjs /usr/bin/ 

aşağıdaki bağlantıyı kontrol edin.

[ERROR - 2014-09-04T19:33:30.842Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140145669488128,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]} 

Ben, bazı uç örnekleri için kullanıyor olması gerekir bazı eksik dosya olması gerektiğini emindi. Bu yüzden şimdi kaynağından ve çalışmasından para kazanmaya karar verdim.

+1

OSX için Bina Phantom eşek acıdır. QT libs için sorar. – Volatil3