当前位置: 首页 > 知识库问答 >
问题:

在以下输入栏中使用Scrapy和send_keys

史智志
2023-03-14

我试图专注于twitter.com/login和send_keys('foo')的电子邮件输入,但是我运气不好。有人能告诉我为什么我的实现是错误的吗:

import time

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from selenium import webdriver 

class MySpider(BaseSpider):
    name = "new"
    allowed_domains = ["twitter.com"]
    start_urls = ["https://www.twitter.com/login"]

    def __init__(self):
    self.driver = webdriver.Firefox()

    def parse(self, response):
    self.driver.get(response.url)
    time.sleep(1)

    #print response.body
    username = self.driver.find_element_by_class_name('email-input')
    username.click()
    username.clear()
    username.send_keys('foo')


    #self.driver.close()

任何帮助都将不胜感激。此外,当我尝试这样做时,我得到以下错误:

2015-08-22 15:44:09-0500[scrapy]DEBUG:Telnet控制台监听127.0.0.1:60232015-08-22 15:44:10-0500[new]DEBUG:重定向(301)到https://twitter.com/login

共有1个答案

东方和志
2023-03-14

问题是,email input类中有多个元素,而第一个元素实际上是不可见的。您需要页面容器中的一个:

self.driver.find_element_by_css_selector("#page-container .email-input")
 类似资料:
  • 问题内容: 我有两个Java类,一个包含getter和setter,另一个是驱动程序类。我需要来自驱动程序类中扫描程序的用户输入才能属于第一类中的getter。用户输入必须为double,因为它将用作getter中的公式。 问题答案: 真正最好的是将所有内容都放在一个类中,没有理由将一个类分成两个类,只是为了使获取器和设置器与其他类分开,这 没有任何意义 。我确实想知道您是否误解了您的作业。 现在

  • 我已经看到在新的材料设计侧导航规范,你可以显示抽屉在行动栏和状态栏后面。我该如何实施这一点?

  • 我很难找到关于这些命令的功能、返回什么以及如何在C++中的应用程序中获得它们的信息。这是一个练习,这就是我需要如何获得我将从中读取的输入文件和我将向其写入的输出文件: 我试图使用: 谢谢!

  • 这只是我给tkinter文本输入框在pyplay中的一次尝试。我很确定它不会正常工作,但决定无论如何都要试一试,因为我没有什么可失去的。tkinter屏幕不显示,直到你退出pyplay。所以,我不是问是否有人知道如何修复代码,而是问是否有人知道在pyplay中创建文本框的最简单方法。我知道有一个文本输入类模块可以导入。如果你认为这是最简单的方法,那么你能告诉我吗?如果没有,请告诉我你认为最简单的方

  • 问题内容: 我正在尝试将Scraper与Selenium结合使用,以便能够与javascript进行交互,并且仍然具有Scrapy提供的强大的抓取框架。我编写了一个脚本,该脚本访问http://www.iens.nl,在搜索栏中输入“阿姆斯特丹”,然后成功单击搜索按钮。单击搜索按钮后,我希望scrapy从新呈现的页面中检索元素。不幸的是scrapy不会返回任何值。 这是我的代码如下所示: “属性”

  • 问题内容: 我需要更改输入的插入符号位置,在该位置添加给定的数字(示例)。 是否可以执行类似此示例的操作? 我需要例如: 输入:1234。 因此插入符号的位置将为2。 新数字:9 决赛:12934 提前致谢。 问题答案: 我认为这类情况在指令中看起来更好。例如: 用法: 我从这个答案中使用了跨浏览器光标定位的功能。 演示:http : //plnkr.co/edit/5RSgzvyd8YOTaXP