这几天有事没怎么研究,最开始用的java爬虫想爬取携程,结果失败告终。
主要表现在:
1.抓取不到对应的标签,jsoup语法对应的element个数是0,推测是因为直接用get方法获取机票信息时,该网站不显示和价格信息有关的elemengt,故抓取不到。
2.抓取到的数据是错误的。价格和真正标价的相去甚远。
据说qunar和xiecheng之类的网站在反爬虫上下了些功夫。为了达到目标我也进行了一些尝试,屡败屡战,修改了一下爬虫代码,和思路。今天尝试了phantomjs做爬虫,成功爬取了,phantomjs脚本文件的代码好像是js代码,和JAVA也差不多,很容易上手。
方法1.访问网站的手机版,下个浏览器的user-agent switch插件,把agent改成手机浏览器就成。然后照常执行爬虫任务,相对的手机网页比电脑版简洁好抓一些,但是还是failed。
方法2.增加请求头伪装浏览器,和真实浏览器差别太大,无效,failed。
方法3.既然不给非浏览器发数据,那我就用真浏览器,phantomjs开源浏览器内核,说白了就是一个没有GUI的浏览器,需要通过操作台和代码行使用,当然好处就是开源的东西可以整进自己想要的功能,比如爬虫。
暂时放下前面的java爬虫,用phantomjs来做个小爬虫,专门爬机票。最后经过尝试,succe