Python 脚本将找不到Twitter';密码字段

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

在这个使用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 = 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。