我正在尝试使用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");如何检索我登录时看到的相同页面?
发布于 2017-05-31 23:12:28
关于这个我不能告诉你更多,因为我不知道你得到了什么,但是对于网络爬虫来说,最常见的问题是网站所有者大多是不喜欢网络爬虫。因此,你应该表现得像普通用户一样--比如你的浏览器。当你访问某个网站时,打开你的浏览器检测元素(按f12),看看你的浏览器发送了什么请求,然后尝试模仿它:例如,在你的标题中添加Host, Referer等。你需要在这上面做实验。
此外,很高兴知道-一些网站所有者将使用先进的技术(因此他们会阻止你访问他们的网站),有些不会阻止你在他们的网站上爬行。有些人会让你随心所欲。最公平的选择是检查www.somedomain.com/__robots.txt,并且有允许抓取和不应该允许的端点的列表。
https://stackoverflow.com/questions/44288170
复制相似问题