小编Sid*_*esh的帖子

使用selenium python webdriver滚动网页

我正在抓取这个网页上的用户名,滚动后加载用户

网址:" http://www.quora.com/Kevin-Rose/followers "

我知道页面上的用户数量(在这种情况下编号为43812)如何滚动页面直到所有用户都被加载?我已经在互联网上搜索了同样的内容,并且在任何地方我都得到了几乎相同的代码行,这样做:

driver.execute_script("window.scrollTo(0,)")

如何确定垂直位置以确保所有用户都已加载?有没有其他选项来实现相同的东西而不实际滚动?

   from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import urllib

driver = webdriver.Firefox()
driver.get('http://www.quora.com/')
time.sleep(10)

wait = WebDriverWait(driver, 10)

form = driver.find_element_by_class_name('regular_login')
time.sleep(10)
#add explicit wait

username = form.find_element_by_name('email')
time.sleep(10)
#add explicit wait

username.send_keys('abc@gmail.com')
time.sleep(30)
#add explicit wait

password = form.find_element_by_name('password')
time.sleep(30)
#add explicit wait

password.send_keys('def')
#add explicit wait

password.send_keys(Keys.RETURN)
time.sleep(30)

#search = driver.find_element_by_name('search_input')
search = wait.until(EC.presence_of_element_located((By.XPATH, …
Run Code Online (Sandbox Code Playgroud)

python selenium web-scraping python-2.7 selenium-webdriver

5
推荐指数
1
解决办法
8354
查看次数

无法使用Python中的Selenium webdriver登录Quora

我在Python中使用Selenium模块登录Quora.它适用于Facebook,但我send_keys('my_email')在Quora上尝试时遇到错误:

我使用以下脚本.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Firefox()
driver.get('http://www.quora.com/')
time.sleep(60)

username = driver.find_element_by_name('email')
time.sleep(60)
username.send_keys('my_email')
time.sleep(60)

password = driver.find_element_by_name('password')
time.sleep(60)
password.send_keys('my_password')
time.sleep(60)

password.send_keys(Keys.RETURN)

driver.close
Run Code Online (Sandbox Code Playgroud)

睡眠时间在这里不是问题,因为我尝试使用Python shell逐行执行脚本.

错误:

回溯(最近一次调用最后一次):文件"",第1行,在password.send_keys('my_password')文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",第293行,在send_keys中self._execute(Command.SEND_KEYS_TO_ELEMENT,{'value':输入})文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",第370行,在_execute返回self ._parent.execute(command,params)文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py",第173行,执行self.error_handler.check_response(response)文件"C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py",第164行,在check_response中引发exception_class(消息,屏幕,堆栈跟踪)ElementNotVisibleException:消息:u'Element当前不可见,因此可能不是与'互动'; Stacktrace:在DelayedCommand的fxdriver.preconditions.visible(文件:/// c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:8791:5).在delayededCommand.prototype.executeInternal_/h中的prototype.checkPreconditions_(文件:/// c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11438:1) (文件:/// c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11455:11)在DelayedCommand.prototype.executeInternal_(file:// /c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11460:7)在DelayedCommand.prototype.execute/<(file:/// c: /users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11402:5)

python selenium python-2.7 selenium-webdriver quora

3
推荐指数
1
解决办法
1703
查看次数

在python中使用Selenium Webdriver进行显式等待查找元素

我正在尝试使用链接文本查找元素,我正在使用以下代码

handle = driver.window_handles
#handle for windows
driver.switch_to.window(handle[1])
#switching to new window
link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Followers ")))
Run Code Online (Sandbox Code Playgroud)

而且我正在追踪

Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Followers ")))
File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until
raise TimeoutException(message)
TimeoutException: Message: ''
Run Code Online (Sandbox Code Playgroud)

我尝试选择的元素的HTML是

<a href="/Kevin-Rose/followers">Followers <span class="profile_count">43,799</span></a>
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题??

python selenium python-2.7 selenium-webdriver

3
推荐指数
1
解决办法
2万
查看次数