【问题标题】:Python - requests_html screen scrapingPython - requests_html 屏幕抓取
【发布时间】:2018-07-17 14:45:04
【问题描述】:

我正在尝试登录一个非常复杂(在我的初学者眼中)的网站并进行预订。在开始项目之前不知道一条 python 语句。在多次启动和停止后使用 requests_html/HTMLSession 成功登录。已克服安全/授权问题并到达目标页面。该页面上显示服务器时间,直到时间到达上午 7:00,我才能按正确的键。 我无法访问该字段。我尝试了 .search 和 .find 命令,但没有。我希望有人能告诉我如何将时间下载到我的程序中,这样我就可以测试时间并等到它到达或几乎到达 7:00。 (我说几乎是因为预订是针对开球时间的,而且 7 点真的很紧张——这个应用程序的全部意义在于使过程自动化并且是最快的!)

所以我需要能够将时间加载到我的 python 中,并在时钟到达 7:00 时单击日期文件。

【问题讨论】:

    标签: python web-scraping python-requests-html


    【解决方案1】:

    不知道您使用的是什么抓取工具,但通常您会通过 xpath 或 css 选择器访问此元素:

    response.css(".jquery_server_clock::text").extract()
    

    这个例子是如果你使用scrapy

    【讨论】:

      【解决方案2】:

      也许你最好使用selenium

      Selenium 允许您自动化浏览器窗口,因此可能无法使用请求与站点交互,但使用 selenium,您访问的站点认为您使用的是普通浏览器,但您可以自动化一切。

      如果我是你,我会怎么做:

      from selenium import webdriver
      
      driver = webdriver.Chrome()
      driver.get("your_url.com")
      
      input("Navigate to the desired page, then press enter")
      
      while not driver.find_element_by_class_name("jquery_server_clock").text[0] == "7":
          pass
      
      driver.find_element_by_class_name("other_button").click()
      

      这会等到早上 7 点,然后立即单击另一个按钮。

      【讨论】:

      • 谢谢 - 我会试试的。但是我在使用硒时遇到了麻烦。除了用户名和密码外,还有几个隐藏字段需要回复,我不知道如何将数据返回到隐藏字段。我承认我知道的不多,但你必须从某个地方开始。如果您对此有任何线索,我当然会很感激他们......
      • 如果您在 Firefox 中使用 selenium,请确保 geckodriver 版本与您的 Firefox 版本正确。我搜索了 2 天,直到我发现这是问题所在;)
      猜你喜欢
      • 2019-01-17
      • 2014-07-29
      • 2010-10-23
      • 1970-01-01
      • 2016-05-23
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多