我在http://www.domaintools.com/research/reverse-ip/有一个帐户。我查看了他们的ajax搜索并尝试执行python查找,如下所示:
req = urllib2.Request('http://www.domaintools.com/research/reverse-ip? ajax=mReverseIP&call=getIPResults&args[0]=64.233.161.104+"&args[1]=20')
import base64
base64string = base64.encodestring('%s:%s' % ('USERNAME', 'PASSWORD'))[:-1]
authheader = "Basic %s" % base64string
req.add_header("Authorization", authheader)
conn = urllib2.urlopen(req,timeout=5)
但我回来了,“请登录”。所以我假设他们不支持Basic Auth。
然后我尝试了
req = urllib2.Request('https://secure.domaintools.com/log-in/?r=http%3A%2F%2Fwww.domaintools.com%2Fresearch%2Freverse-ip%2F')
import base64
base64string = base64.encodestring('%s:%s' % ('USERNAME', 'PASSWORD'))[:-1]
authheader = "Basic %s" % base64string
req.add_header("Authorization", authheader)
conn = urllib2.urlopen(req,timeout=5)
但是我得到了一个需要cookie的错误。
所以我的问题是:如果我设法将cookie添加到第二个代码示例,我该如何使用该请求进行查找?有人可以为此提供代码示例吗?
谢谢,
萨姆
编辑:我搜索了一些,找到了机械化库。有人可以建议如何使用它来发出Ajax请求吗?我现在已经走到了这一步:
import mechanize
browser = mechanize.Browser()
browser.set_handle_robots(False)
browser.open('https://secure.domaintools.com/log-in/?r=http%3A%2F%2Fwww.domaintools.com%2Fresearch%2Freverse-ip%2F')
browser.select_form(nr=0)
browser["username"] = 'username'
browser["password"] = 'pass'
browser.new_control("HIDDEN", "action", {})
control = browser.form.find_control("action")
control.readonly = False
browser["action"] = "login"
browser.method = "POST"
browser.action = "#"
response = browser.submit()
现在是什么?
答案 0 :(得分:0)
很难:
更简单的方式:
您可以将phantomjs作为单独的过程启动,例如使用子进程模块并读取stdout,如果你每次都需要避免打开进程,你可以有一个单独的进程来保持长时间运行的phantomjs用于此目的。