Python 在没有浏览器的情况下激活链接

Python 在没有浏览器的情况下激活链接,python,urllib,Python,Urllib,我有一个我是注册用户的网页。我需要在没有浏览器用户名、密码的情况下登录,然后单击将我的名字添加到网页列表中的链接。我希望此过程在后台工作,例如根本不显示在屏幕上。我一直在尝试使用Python来实现这一点 #!/usr/bin/env python2 #coding:utf-8 import sys import urllib import urllib2 import urlparse import subprocess from BeautifulSoup import Beaut

我有一个我是注册用户的网页。我需要在没有浏览器用户名、密码的情况下登录,然后单击将我的名字添加到网页列表中的链接。我希望此过程在后台工作,例如根本不显示在屏幕上。我一直在尝试使用Python来实现这一点

#!/usr/bin/env python2
#coding:utf-8

import sys 
import urllib 
import urllib2 
import urlparse 
import subprocess

from BeautifulSoup import BeautifulSoup

class MyOpener(urllib.FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
    rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15'

def process(url):
    myopener = MyOpener()
    page = myopener.open(url)

    text = page.read()
    page.close()

    soup = BeautifulSoup(text)
    links = []

    for tag in soup.findAll('a', href=True):
        tag['href'] = urlparse.urljoin(url, tag['href'])
        links.append(tag['href'])

    return links

if __name__ == "__main__":
    links = process("http://www.dropbox.com")
    for link in links:
        #print link
        if 'downloading' in link:
            print link
            fileHandle = urllib2.urlopen(link)

有关http身份验证的示例,请参见。不确定这是否是你想要的

用按钮查看页面的HTML代码。如果按钮后面有一个url/链接,您只需访问该链接,例如使用urllib2


如果按钮触发了一些javascript,urllib2将不会帮助您。解决这个问题的一个方法是使用,我从未使用过,但它应该非常强大

好的,具体怎么做取决于所讨论的站点。但是,我将假设您每次都需要创建一个新会话,并且在成功验证后,服务商会发布一个会话id,该id存储在您的cookie中

确定登录页面是否需要GET或POST参数 执行登录并将返回的会话id Set Cookie存储在服务器响应中 确定单击该链接时向服务器发送的请求。 如果你自己发送请求,服务器就无法分辨出区别。 如果希望循环此操作的频率高于会话超时,请再次注销。 使用Burp或mitmproxy等代理将帮助您调试任何问题

如果您发现通过单击该链接发送的GET请求不会随时间或每次新登录而更改,那么您可以事先确定。然后,您可以简单地登录以获取cookie,而不必担心页面内容,只要您有了需要随该请求一起发送的cookie,就可以发出GET请求


祝你好运,玩得开心:

如果你在Windows上,你可以寻找一个简单的IE Python自动化工具

简单的PAMIE示例:

import cPAMIE as PAMIE
ie = PAMIE( )
ie.Navigate("'www.google.com" )
ie.textBoxSet("q", "python" )
ie.buttonClick("'btnG" ) 

PAMIE的3.0版本在我试图激活dropbox主页上的下载链接的代码中,因此程序将被下载。这可能吗?对Uku Loskit:Python代码不会激活链接,因为Dropbox程序已下载到我的计算机。如果没有更多信息,将无法帮助您。如何存储身份验证凭据?如果它是公开的,你需要告诉我们实际的网站,这样我们才能看到。我将给出一个一般的,合理设计的网站下面的答案。