我在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)
但我回来了,“请登录”。所以我假设他们不支持基本身份验证。
然后我尝试了
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 添加到第二个代码示例中,我如何使用该请求进行查找?有人可以为此提供代码示例吗?
谢谢,
山姆
编辑:我搜索了更多,找到了 mechanize 库。有人可以建议如何使用它来发出 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()
怎么办?