Python 脚本将找不到Twitter';密码字段
在这个使用Selenium的超级基本python脚本中,我只是尝试自动登录twitter,以便开始抓取。当chrome会话打开时,会填写用户名,但密码字段为空Python 脚本将找不到Twitter';密码字段,python,selenium,selenium-webdriver,twitter,Python,Selenium,Selenium Webdriver,Twitter,在这个使用Selenium的超级基本python脚本中,我只是尝试自动登录twitter,以便开始抓取。当chrome会话打开时,会填写用户名,但密码字段为空 import bs4 from selenium import webdriver driver = webdriver.Chrome(); url = "https://twitter.com/login" driver.get(url) assert "Twitter" in driver.title username = dri
import bs4
from selenium import webdriver
driver = webdriver.Chrome();
url = "https://twitter.com/login"
driver.get(url)
assert "Twitter" in driver.title
username = driver.find_element_by_class_name('js-username-field')
username.send_keys('example_username')
password = driver.find_element_by_class_name('js-password-field')
password.clear()
password.send_keys('exmaple_password')
login_button = driver.find_element_by_css_selector("button.submit.EdgeButton.EdgeButton--primary.EdgeButtom--medium")
login_button.submit()
您可能需要在密码字段中添加一个
wait
。如果脚本出现间歇性问题,这会有所帮助。我更喜欢等待
,而不是睡眠
import bs4
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome();
url = "https://twitter.com/login"
driver.get(url)
assert "Twitter" in driver.title
username = driver.find_element_by_class_name('js-username-field')
username.send_keys('example_username')
# wait on password field
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'js-password-field')))
password = driver.find_element_by_class_name('js-password-field')
password.clear()
password.send_keys('exmaple_password')
login_button = driver.find_element_by_css_selector("button.submit.EdgeButton.EdgeButton--primary.EdgeButtom--medium")
login_button.submit()
Python的运行速度非常快,网页有时需要一段时间才能跟上进度。添加
wait
有助于降低速度,并可以修复您可能看到的一些间歇性错误。欢迎使用SO。请花点时间阅读。它将帮助你设计出可靠的问题,希望能得到有用的答案。刮取他们的网站是违反Twitter的TOS;他们可能以某种方式阻止了你。YMMV。