用HtmlUnit爬取淘宝数据

问题描述

http://jiuxu.taobao.com/比如我想爬取上面页面的所有宝贝链接如<ahref="http://item.taobao.com/item.htm?spm=a1z10.1.w5003-8452167994.1.fVp17O&amp;id=40416742109&amp;scene=taobao_shop"target="_blank"data-spm-wangpu-module-id="5003-8452167994"data-spm-anchor-id="a1z10.1.w5003-8452167994.1"><imgsrc="http://img02.taobaocdn.com/imgextra/i2/50090008/TB2j6UraXXXXXaUXpXXXXXXXXXX_!!50090008.jpg"width="621"height="442"border="0"alt=""></a>我想要http://item.taobao.com/item.htm?spm=a1z10.1.w5003-8452167994.1.fVp17O&amp;id=40416742109&amp;scene=taobao_shop这个内容HttpUtils没有渲染页面功能所以直接就放弃了(而且的确也抓不出我想要的内容)在使用htmlUnit渲染页面的时候发现获得tbody内的信息不完整原因经过查询相关资料大致了解:因为有的js内容需要浏览器滚动下拉才会加载请问我要如何模拟浏览器的滚动下拉来加载页面上所有的js?参数设置如下://1启动JSwebClient.getOptions().setJavaScriptEnabled(true);//2禁用Css,可避免自动二次請求CSS进行渲染webClient.getOptions().setCssEnabled(false);//3启动客戶端重定向webClient.getOptions().setRedirectEnabled(true);//4js运行错誤時,是否拋出异常webClient.getOptions().setThrowExceptionOnScriptError(false);//5设置超时webClient.getOptions().setTimeout(50000);HtmlPagehtmlPage=webClient.getPage(url);//等待JS驱动dom完成获得还原后的网页webClient.waitForBackgroundJavaScript(10000);//网页內容/*System.out.println(htmlPage.asXml());*/webClient.closeAllWindows();returnhtmlPage.asXml();然后http://zarakara.tmall.com/这个页面用上述方法根本渲染不出所需的宝贝链接已经尝试过各种方法包括python下面的phantomjs+casperjs虽然可以解析但是依然无法加载下面的内容还有什么百度蜘蛛谷歌蜘蛛。

解决方案

解决方案二:
这类脚本都比较复杂,实际上你很难搞到一个比较完备的脚本引擎。可以考虑用WebKit后台执行该页面,也就是用真正的浏览器来解析页面,然后抓取内容;缺点是开销较高。
解决方案三:
引用1楼ldh911的回复:

这类脚本都比较复杂,实际上你很难搞到一个比较完备的脚本引擎。可以考虑用WebKit后台执行该页面,也就是用真正的浏览器来解析页面,然后抓取内容;缺点是开销较高。

嗯哼,你说的方法试过,但是依然会遇到我上面说的问题:不向下滚动页面去激活那些js就无法获得里面的内容我前段时间用的Selenium+chromeDriver就是跟你类似的方法吧
解决方案四:
可以代码触发浏览器的滚动条下滚。不过总的来说是代价比较高。还有个方案:是研究并分析出该页面在发生滚动后,究竟向服务器发出了什么新的请求,是怎么增量刷出其它内容的。然后直接用程序去构造这个新的HTTP请求。不过这个方案估计难度不小。
解决方案五:
引用3楼ldh911的回复:

可以代码触发浏览器的滚动条下滚。不过总的来说是代价比较高。还有个方案:是研究并分析出该页面在发生滚动后,究竟向服务器发出了什么新的请求,是怎么增量刷出其它内容的。然后直接用程序去构造这个新的HTTP请求。不过这个方案估计难度不小。

多谢和同事讨论了一下决定放弃改用人工手工收集信息(这个成本比较小
解决方案六:
哈哈。不过以前也碰到项目最后决定还是人工算了的,性价比不合适。
解决方案七:
我猜多数行不通。淘宝这样的大公司肯定有防爬虫的机制。
解决方案八:
http://bbs.aliyun.com/read/169222.html?displayMode=1有没有遇到这样的问题,在win平台下或是本地eclipse下调试可以获取商品,但是部署在阿里云centos下却不可以

时间: 2024-09-12 05:15:25

用HtmlUnit爬取淘宝数据的相关文章

python爬取淘宝商品信息并加入购物车

先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前,咱么要先做一些准备工作,我项目中使用的是 python2.7 ,开发与运行环境都是win10,浏览器是64位chrome 59.0.3.由于淘宝的模拟登陆涉及到一些复杂的UA码算法以及滑块登陆验证,能力有限,为了图省事就使用浏览器手动登录淘宝然后python获取生成的cookie的方式来爬取登录后的

Python爬取淘宝模特图片网络爬虫示例

为了爬取模特的图片,我们首先要找到各个模特自己的页面.通过查看网页源码,我们可以发现,模特各自的页面的特点如下: 我们可以通过查找class属性为lady-name的标签,然后取其href属性来获取各个模特各自的页面地址. 1 html = urlopen(url) 2 bs = BeautifulSoup(html.read().decode('gbk'),"html.parser") 3 girls = bs.findAll("a",{"class&q

通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据(经典)_AJAX相关

在学习python的时候,一定会遇到网站内容是通过 ajax动态请求.异步刷新生成的json数据 的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看本文内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据

网页-如何网络爬虫抓取淘宝交易数据

问题描述 如何网络爬虫抓取淘宝交易数据 小弟学软件的,现在想开淘宝店,想想怎么能快速获得用户数据推广产品,问问说网络爬虫可行,可是对这方面不了解,有哪位大神可以教一下,获取自己和其他用户网页上的商品信息之类的,作为分析. 解决方案 搜索引擎如百度都不让抓淘宝里的交易数据,淘宝的安全工程师都不是吃素的,建议你换个课题吧 解决方案二: 可以先看看对应数据的http,浏览器查看一下是否有对应的api,然后再考虑怎么发送请求 解决方案三: 关于电商网站的爬虫,大家可以学习一下这个系列的教程:http:/

电商网站数据抓取-使用什么方法抓取淘宝、天猫、京东和当当网的店铺和商品信息?

问题描述 使用什么方法抓取淘宝.天猫.京东和当当网的店铺和商品信息? 由于这些电商网站有一部分产品信息是通过JS脚本动态填充进去的,能直接在网页源码里面获取到的产品信息相当有限,请问各位大神使用什么技术可以抓取到店铺和商品的完整信息? 解决方案 API API API API API 解决方案二: http://blog.csdn.net/xuyaogyo/article/details/40918483 解决方案三: 看看这个,支持淘宝.京东.天猫店铺 http://jingyan.baidu

php-curl抓取淘宝首页抓取不到。

问题描述 curl抓取淘宝首页抓取不到. 列表页面"> 这是我的代码,抓取淘宝一直抓取不到. 解决方案 curl得到的内容和你浏览器查看源代码后得到的一样,js动态添加的内容和ajax动态加载的无法获取 解决方案二: 数据都是js 动态生成的,你获取的只是代码. 解决方案三: 淘宝应该有防抓取设置 一般是通过判断请求来源来防止抓取 你可以在浏览器中访问时抓一下包 分析一下它的请求头数据 模拟一下啥 解决方案四: 页面是动态生成的,你没办法直接拿到内容,

php+curl+302+淘宝-用curl抓取淘宝页面信息,本地可以,服务器却不行

问题描述 用curl抓取淘宝页面信息,本地可以,服务器却不行 看下面的代码,在本地appach服务器可以正常打印出页面内容,但是到服务器上却提示15s 的timeout错误: $htmlstr = get_html("http://detail.tmall.com/item.htm?id=41159437194"); echo $htmlstr; function get_html( $url ) { $ch = curl_init(); curl_setopt($ch, CURLOP

PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例_php实例

说起来做这个功能还真是一时好奇.前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是: https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3&currentPage=1&append=0&

php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法_php实例

 php的curl可以用来实现抓取网页,分析网页数据用, 简洁易用, 这里介绍其函数等就不详细描述, 放上代码看看: 只保留了其中几个主要的函数. 实现模拟登陆, 其中可能涉及到session捕获, 然后前后页面涉及参数提供形式. libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sock PHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)., libcurl当前支持http, https, ftp, gopher, telnet, dict,