|
|
1
2
这是我几年前遇到的一个问题,当时我想做同样的事情。我们的网站是 http://benchcoach.com 我们考虑的选择是: 最初,我们考虑获取用户的凭证和登录名。然后我们会登录并搜集他们的联赛和球队信息。问题是,在阅读了几个不同的服务条款后,这肯定会违反服务条款。除此之外,雅虎!肯定是我们正在考虑的网站之一,他们的用户有电子邮件(我们可以在那里访问敏感数据)和雅虎!钱包。此外,对于Yahoo/ESPN/CBS来说,按IP地址阻止我们的程序化登录非常简单。 我们采用的解决方案(不是100%满意,但似乎可行)是要求用户安装一个书签(如Delicious、Digg或Reddit),将当前的HTML页面发布到我们的服务器,在那里我们可以分析数据并加载数据库。如果他们仍然登录到他们的yahoo/espn/cbs帐户,我们将直接将他们引导到页面,否则,这些站点将提示进行身份验证。再次单击书签,会将页面发布到我们的服务器。 这种方法的优点是我们从未收集任何人的证书,因此任何安全问题都会得到缓解。其次,雅虎/ESPN/CBS将无法阻止访问我们的服务,因为我们永远不会直接连接到他们的服务器,而是用户的浏览器将其浏览器的内容发布到我们的服务器。 问题在于,要将一个页面发布到我们的站点,只需点击2次。对于头对头联盟,我们需要3-4页,这样我们的用户需要6-8次点击才能将他们的联盟与我们的服务器同步。我们仍在寻找这方面的选择。 一个重要的提示是,我在一年前的一次会议上遇到了雅虎梦幻足球网站的产品经理。我们谈到了我们是如何获取雅虎数据的,他也证实,获取证书会违反他们的操作系统,他们可能会阻止我们。虽然我不认为他们会这样做,但如果他们关闭账户,就很难投入时间和精力来开发这个网站,从而阻止我们的网站并激怒用户。 |
|
|
2
2
一个可能更复杂的答案可以通过(例如)雅虎管道来实现。 假设您创建了一个管道,它提示用户输入他们的凭证,并为他们提供一个包含他们的刮取数据的URL。他们在自己的站点中输入这个URL,而不必直接提供他们的凭证。更好的是,为了安全起见,可以在输入任何信息之前检查管道实际上在做什么。 缺点是增加了复杂性(以及必须编写和维护管道)。尽管如此,您可以直接从您的站点提供到已发布管道的链接,以使事情尽可能简单。 |
|
3
1
方案1是显而易见的选择。信任您网站的人将提供详细信息。在屏幕抓取时,没有其他方法可以登录到其他站点。 |
|
|
NoUsername9 · 使用Apify和Puppeter抓取URL 6 年前 |
|
|
Alok Mishra · 如何自动点击“内容”按钮 8 年前 |
|
|
Ike · Python Selenium错误-当webdriver 8 年前 |
|
|
ilyas · 使用网站查询获取数据[已关闭] 8 年前 |