设置了user agent,怎么返回的html还是web版本的?
@黄亿华 你好,想跟你请教个问题:
想爬一下http://www.gov.cn/zhengce/zc_bm.htm云适配版本的网页,设置了user agent,但是爬回来的html还是web版本的。请问要怎么写才能爬到云适配版本的网页内容。是不是我哪里写错了?(用chrome模拟是对的,我直接copy了chrome的ua过来的)代码如下:
public class GjwjNew4Crawler implements PageProcessor { final static String List_Url = "http://www.gov.cn/zhengce/zc_bm.htm"; String userAgent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"; private Site site = Site.me().setRetryTimes(3).setSleepTime(100).setUserAgent(userAgent); @Override public void process(Page page) { System.out.println(page.getHtml()); } @Override public Site getSite() { return site; } public static void main(String[] args) { Spider.create(new GjwjNew4Crawler()).addUrl(GjwjNew4Crawler.List_Url).thread(1).run(); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
好像要执行云适配的js等页面重新加载好了才行
移动设备UA检测通常是mobile关键字。 下面是我用node.js 写的服务器中给出的一个服务端检测的例子
http://f2e-server.com/server.html#filter-conf
回复
恩,这样的话单纯的模拟请求是不行的,得把html塞到webview里面去让js执行一遍才行。但是这样的话性能和速度还不如直接解析桌面端的html
回复
恩,是的,研究了一个早上,也算没有白费。终于搞清楚了缘由。最后我直接解析html了。
这个页面采用了allmobilize “云适配技术”
桌面端和移动端的html还是同一个html,只是采用了不同的css,改变界面显示布局,so...