selenium Twitter Scraper新手

1yjd4xko  于 2022-11-24  发布在  其他
关注(0)|答案(2)|浏览(255)

好吧,我是新的编码,所以请耐心等待。我感谢所有的帮助。
我想用Edge作为浏览器创建自己的Twitter Scraper。我的第一个问题是有些单词没有着色。例如.webdriver.common.keys应该像视频中一样是蓝色的。(我在文件底部放了一个视频链接,以供参考。)
第二个问题我一直收到错误信息,将我的 selenium 从3升级到4,我很肯定我已经有了 selenium 4版本。所以我不明白为什么我会收到这个错误信息。
第三个问题我如何在这里使用/应用xpath来搜索正确的元素。我需要从库中导入还是更新anaconda导航器?我迷路了。
感谢所有的帮助。
此致,
中队
以下是我的代码:

import csv
from getpass import getpass
from time import sleep
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from msedge.selenium_tools import Edge, EdgeOptions

options = EdgeOptions()
options.use_chromium = True
driver = Edge(options=options)

C:\Users\Cagri\AppData\Local\Temp\ipykernel_13256\875207683.py:3: DeprecationWarning: Selenium Tools for Microsoft Edge is deprecated. Please upgrade to Selenium 4 which has built-in support for Microsoft Edge (Chromium): https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/#upgrading-from-selenium-3
  driver = Edge(options=options)

driver.get('https://www.twitter.com/login')

username = driver.find_element_by_xpath('//input[@name="text"]')
username.send_keys('DataForCagri')

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_13256\3481032478.py in 
----> 1 username = driver.find_element_by_xpath('//input[@name="text"]')
      2 username.send_keys('DataForCagri')

AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'

LINK TO THE YOUTUBE VIDEO!!!!
https://www.youtube.com/watch?v=3KaffTIZ5II&t=250s

我真的迷路了,没有任何朋友或家人做编码。所以在这里我请求陌生人的帮助。我感谢所有的帮助!

nwlls2ji

nwlls2ji1#

在Selenium 4中不推荐使用“Selenium Tools”,因此您必须导入以下模块。
您还需要导入服务:

from selenium import webdriver
# for EdgeOptions
from selenium.webdriver.edge.options import Options

from selenium.webdriver.edge.service import Service

options = webdriver.EdgeOptions()
driver = webdriver.Edge(service=Service(<edge driver path>), options=options)

对于错误- 'AttributeError:'WebDriver'对象没有'find_element_by_xpath'属性,您可以参考Prophet答案

kmpatx3s

kmpatx3s2#

现在不赞成使用find_element_by_namefind_element_by_xpathfind_element_by_id等所有方法。
您应该改用find_element(By.
所以,与其

username = driver.find_element_by_xpath('//input[@name="text"]')

应该是现在

username = driver.find_element(By.XPATH, '//input[@name="text"]')

另外,我不需要使用username变量,文本可以直接发送到返回的web元素,如下所示:

driver.find_element(By.XPATH, '//input[@name="text"]').send_keys('DataForCagri')

您将需要此导入:

from selenium.webdriver.common.by import By

相关问题