KGo*_*KGo 14 python selenium http ui-automation selenium-webdriver
所以我试图使用Python登录Quora,然后刮掉一些东西.
我正在使用Selenium登录该网站.这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get('http://www.quora.com/')
username = driver.find_element_by_name('email')
password = driver.find_element_by_name('password')
username.send_keys('email')
password.send_keys('password')
password.send_keys(Keys.RETURN)
driver.close()
Run Code Online (Sandbox Code Playgroud)
现在的问题是:
找到并填写登录表单需要大约4分钟,这非常缓慢.我能做些什么来加快这个过程吗?
登录时,如何确保没有错误?换句话说,我如何检查响应代码?
如何用硒保存饼干,以便我可以在登录后继续抓取?
如果没有办法让硒更快,那还有其他的登录方式吗?(Quora没有API)
Pol*_*lly 11
我使用ChromeDriver在Python selenium中使用非常慢的find_elements_xxx调用时遇到了类似的问题.我最终找到了我在find_element_xxx()调用之前调用的driver.implicitly_wait()调用的麻烦; 当我拿出它时,我的find_element_xxx()调用很快就会运行.
现在,当我进行find_elements_xxx()调用时,我知道那些元素存在.所以我无法想象为什么implicit_wait应该影响这些操作的速度,但确实如此.
小智 3
我去过那里,硒很慢。填一张表格可能不会慢到4分钟。然后我开始使用 phantomjs,它比 Firefox 快得多,因为它是无头的。安装最新的 phantomjs 后,您只需在 webdriver 行中将 Firefox() 替换为 PhantomJS() 即可。
要检查您是否已登录,您可以断言登录后显示的某些元素。
只要您不退出驱动程序,cookie 就可以用于跟踪链接
您可以尝试使用 urllib 并直接发布到登录链接。您可以使用 cookiejar 来保存 cookie。你甚至可以简单地保存cookie,毕竟cookie只是http header中的一个字符串
| 归档时间: |
|
| 查看次数: |
23996 次 |
| 最近记录: |