2017-05-31 33 views
0

我正在尝试使用java代码检索github网页,为此我使用了以下代码。Java - 检索具有授权的网页

String startingUrl = "https://github.com/xxxxxx"; 
URL url = new URL(startingUrl); 
HttpURLConnection uc = (HttpURLConnection) url.openConnection(); 
uc.connect(); 
String line = null; 
StringBuffer tmp = new StringBuffer(); 
try{ 
    BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "UTF-8")); 
    while ((line = in.readLine()) != null) { 
     tmp.append(line); 
    }  
}catch(FileNotFoundException e){ 
} 

但是,我在这里收到的页面与我在登录到github后在浏览器中观察到的不同。我尝试发送授权标题如下,但它也没有奏效。

uc.setRequestProperty("Authorization", "Basic encodexxx"); 

如何检索我在登录时看到的相同页面?

+0

你有理由相信该网站实际上使用HTTP基本认证? – VGR

回答

0

我不能告诉你更多关于此的信息,因为我不知道你在做什么,但是网络爬虫最常见的问题是网站所有者主要是不喜欢网络抓取工具。因此,你应该像普通用户一样行事 - 例如你的浏览器。当您访问某个网站时,打开您的浏览器检测元素(按f12),并查看您的浏览器发送请求的内容,然后尝试模仿它:例如,在您的标题中添加Host, Referer等。你需要对此进行试验。

另外,有用的知识 - 一些网站所有者将使用先进的技术(所以他们会阻止你访问他们的网站),有些不会阻止你在他们的网站上爬行。有些会让你做你想做的。最公平的选择是检查www.somedomain.com/ robots.txt并且存在允许抓取的端点列表和不允许的端点列表。