【问题标题】:Screen Scrape a site with python (server side)Screen 使用 python 抓取站点(服务器端)
【发布时间】:2012-02-07 11:21:01
【问题描述】:

我正在创建一个代表虚拟公司网站(在本例中为虚拟面包店)的网站。我已经设置了产品和购物车系统,现在的问题是让它与虚拟银行系统一起工作。参与系统的每个人都有一个帐户,我也有。现在,我对 Python 非常陌生,我一直在使用很多之前创建的脚本,并根据自己的需要稍微编辑它们。

我的问题...

  • 如何使用 python 登录到第三方网站
  • 我如何在登录后点击网站上的按钮(基本上是运行 javascript)?

抱歉,我会附上一个指向我正在尝试访问的网站的链接,但是,它目前似乎已关闭。多么方便。

【问题讨论】:

    标签: jquery python login screen-scraping


    【解决方案1】:

    我建议检查 mechanize 以进行登录:http://wwwsearch.sourceforge.net/mechanize/

    点击按钮查看这个答案:https://stackoverflow.com/a/1806266/1104941

    编辑:

    其他有用的链接:

    【讨论】:

      【解决方案2】:

      不幸的是,没有一种非常好的方法可以在 Python 上下文(或浏览器之外的任何内容)中遍历依赖于 Javascript 的站点。即使您将 Mechanize 与 python-spidermonkey 或其他形式的 Javascript 桥与 Python(可能是 pyV8)一起使用,这些桥也不能单独模拟 DOM。因此,任何处理 UI 交互的 Javascript 都无法运行。

      但是,如果您要登录的网站不依赖于 Javascript,那么遍历该网站是完全可能的。我的建议是使用 Kenneth Reitz 的 requests 模块。您可以执行以下操作:

      import requests
      
      # To handle logins you'll most likely need to maintain a session
      # if the site you login to usually expects a human
      s = requests.session() # starts a session
      
      # Next you want to login to the site
      s.post("http://somesite.com/login", data={"u": "username", "p": "password"})
      
      # Now you're logged in and you can do anything you want 
      # using the session instance 
      response_data = s.get("http://somesite.com/awesome-page-id-like-to-grab")
      
      # Do something with the response data ...
      my_response_parsing_function(response_data.content)
      

      还有其他涉及 python 标准库的方法,但 requests 处理所有细节。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-09
        • 2019-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-28
        相关资源
        最近更新 更多