Ruby mechanize 做爬虫 gethtml 的时候,有节点载入不完全的情况

wudixiaotie · 2014年07月27日 · 最后由 wudixiaotie 回复于 2014年07月29日 · 2800 次阅读

一个页面在网上 get 的时候搜索某个节点会搜索不到,但是把页面下载后再 get 本地的同一个网页就会获取到这个节点,不知道有没有遇到过类似的情况。

agent = Mechanize.new
keyword = "手机"
page_num = 1
list_page_p1 = agent.get("http://search.jd.com/Search?keyword=#{keyword}&enc=utf-8&page=#{page_num}")
item[:price] = div.search("div[@class='p-price']").text.match(/\t.*\t/)  
#这时会搜索不到item[:price]这个节点,但是把这个网页保存到本地就能搜索到

哪个大神帮我解决一下,get 图片的时候保存也会遇到这个问题,但是那个好解决只要判断保存的图片大小为 0 就重新 get 就是了,但是这个怎么办呢???还是我写的有问题????

页面源码没有,应该是做了延迟加载

抽出 p-price 下面 strong 标签的 class,比如 J_1130480 然后组合成数组用 http://p.3.cn/prices/mgets?skuids =xx,xx,xx 请求拿到 json,就 ok 了。 记得多用开发者工具...

#2 楼 @saiga 谢谢您的解答,我对爬虫的理解还是太浅薄了,以为就是 get 下来就 OK 了,原来跟打仗一样,你来我往的,真的很有意思。原来一直没往这边想,以为是我用错了,^_^,那我就懂了。就是用浏览器的工具分析网站然后下手。o(∩∩)o...哈哈

需要 登录 后方可回复, 如果你还没有账号请 注册新账号