【发布时间】:2019-03-28 17:59:30
【问题描述】:
我尝试使用 Selenium 运行脚本以从“无限”滚动 instagram 页面下载/抓取数据以进行研究。我使用 google colaboratory,它没有安装浏览器,因为它像服务器一样运行。
这是我的剧本
import time
from selenium import webdriver
from bs4 import BeautifulSoup as bs
browser = webdriver.Firefox()
browser.get("https://www.instagram.com/dario_nardella/?hl=it")
lenOfPage = browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
match=False
while(match==False):
lastCount = lenOfPage
time.sleep(3)
lenOfPage = browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
if lastCount==lenOfPage:
match=True
source_data = browser.page_source
bs_data = bs(source_data)
我有这个错误
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
为了解决我的问题,我尝试使用这个 bash 命令下载 geckodriver
!wget https://github.com/mozilla/geckodriver/releases/download/v0.11.1/geckodriver-v0.11.1-linux64.tar.gz
!tar -xvzf geckodriver-v0.11.1-linux64.tar.gz
!rm geckodriver-v0.11.1-linux64.tar.gz
!chmod +x geckodriver
但我有同样的错误。 非常感谢任何解决方案
我遵循@macio 解决方案,但我有另一个权限问题,可能是由 colaboratory 引起的
browser = webdriver.Firefox(executable_path=/path to geckodriver/)
我不知道为什么
-rwxrwxr-x 1 1000 1000 4087499 Oct 10 2016 geckodriver*
-rw-r--r-- 1 root root 0 Oct 24 10:20 geckodriver.log
【问题讨论】:
-
您需要从浏览器下载 gekodriver 并将其放在您拥有用于 selenium 的 Firefox 驱动程序的同一路径中,以便从您的系统路径中动态获取它们;如果你愿意,你甚至可以将它保存在另一个地方,但在这种情况下你需要你的 webdriver.Firefox() 指向它;例如,我在 C:\Python27\selenium\webdriver 上有我的 gekodriver.exe
-
你确定它对 google colab 有用吗??!!!
标签: python selenium scroll google-colaboratory