我试图使用java代码检索github网页,为此我使用了以下代码。
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 :(得分:0)
我不能告诉你更多关于此事,因为我不知道你得到了什么,但网络爬虫最常见的问题是网站所有者不喜欢网络抓取工具。因此,您应该像普通用户一样 - 例如您的浏览器。当你到达某个网站时,打开你的浏览器检查元素(按f12),看看你的浏览器在请求中发送了什么,然后尝试模仿它:例如,在标题中添加Host, Referer
等。你需要对此进行试验。
另外,很高兴知道 - 一些网站所有者将使用高级技术(因此他们会阻止您访问他们的网站),有些网站所有者不会阻止您在他们的网站上抓取。有些人会让你做你想做的事。最公平的选择是检查 www.somedomain.com/ robots.txt ,并且有允许抓取的端点列表和不允许的端点列表。< / p>