Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功
这个是读取的一个日志文件,里面包含获取到的html信息
不过打开后,会跳转到tmall的登录页面
-------------------------
Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功
task-analyze.zip 是部署在阿里云上用Jsoup抓取到的一个店铺一页的商品信息。
但是发现里面抓取的内容不全,没有抓到它的分页数:1/25;商品信息也不存在了,保存为html,发现跳转到登录页面了
但是如果在本地部署是可以的,我找了另外一家的服务器(是windows的),也是能正常抓取到的。
-------------------------
回1楼理财砖家的帖子
DNS都是OK的
-------------------------
ReRe采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功
引用第5楼城市劣人于2014-09-01 13:29发表的 Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功 :
task-analyze.zip 是部署在阿里云上用Jsoup抓取到的一个店铺一页的商品信息。
但是发现里面抓取的内容不全,没有抓到它的分页数:1/25;商品信息也不存在了,保存为html,发现跳转到登录页面了
但是如果在本地部署是可以的,我找了另外一家的服务器(是windows的),也是能正常抓取到的。
补充抓取的地址是:抓取的地址是:http://osa.tmall.com/search.htm?&search=y&orderType=newOn_asc&tsearch=y
-------------------------
Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功
咨询了阿里云技术售后客服,说阿里云服务器是没有限制的。
难道是centos系统,对抓取这一块 有什么特殊的权限吗?
-------------------------
回9楼bendchen的帖子
怎么操作法?
-------------------------
回11楼啊里新人的帖子
本地还没有环境测试,难道真的是环境问题
除了Jsoup抓取之外,有没有好的推荐?
-------------------------
回15楼千鸟的帖子
抓取到的html保存为文本,就是少了中间商品列表那部分,在4楼有附件
-------------------------
Re回12楼城市劣人的帖子
引用第13楼啊里新人于2014-09-11 18:09发表的 回 12楼(城市劣人) 的帖子 :
jsoup解析数据比较好用,采集数据,我之前用的httpclient
httpclient 有抓取整个页面数据的简单例子吗?只要能抓取到,再用jsoup解析数据
-------------------------
Re采用Jsoup抓取TB数据,本地正常,部署在阿里云上无法成功
最新进展,ECS是在杭州可用区B(发现有这个问题),后来在C、D区部署测试了,就没有这个现象了。
后续抓取JD的数据测试了一下,B区也是能正常抓取的。
奇怪的是为什么在B区就不能抓取淘宝的数据呢?
程序是一样的
protected static WebClient getWebClient() {
if (wc == null) {
/** HtmlUnit请求web页面 */
wc = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);
wc.getOptions().setJavaScriptEnabled(true); // 启用JS解释器,默认为true
wc.getOptions().setUseInsecureSSL(true);
wc.getOptions().setCssEnabled(false); // 禁用css支持
wc.getOptions().setActiveXNative(false);
wc.getOptions().setThrowExceptionOnScriptError(false); // js运行错误时,是否抛出异常
wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
wc.waitForBackgroundJavaScript(10 * 1000);
wc.setJavaScriptTimeout(5000);
wc.getOptions().setTimeout(10000); // 设置连接超时时间 ,这里是10S。如果为0,则无限期等�?
wc.getOptions().setDoNotTrackEnabled(false);
wc.setAjaxController(new NicelyResynchronizingAjaxController());
}
return wc;
}
page = getWebClient().getPage(url);
String pageXml = page.asXml();
/** jsoup解析文档 */
Document doc = Jsoup.parse(pageXml, "http://aizhizao.tmall.com");
Elements listDiv = doc.getElementsByAttributeValue("class", "ui-page-s-len");
System.out.println(listDiv.html());