资讯专栏INFORMATION COLUMN

Selenuim Java 借用某宝某地区的电商数据

Arno / 1033人阅读

摘要:刚下载时项目中使用后得不到某宝的数据,因为数据是动态生成的。使用去获取数据某宝的取不到用某度的首页试了下是可以的。我是根据店铺名称卖家地区中包含特定关键字来过滤的。把宝贝列表的做为输入循环宝贝列表并进入抓取交易量数据并保存。

项目背景
  因前段时间公司有需求,想得到我们公司所在地区(四线城市)的电商企业的销售额排名情况,时间紧急,调研无
  果,花费RMB若干买了某工具的数据服务(避免打广告的嫌疑,就不提该工具的名称了,网页版的),勉强得到些数
  据,在我看来效果并不理想。恰逢近期公司想做大数据项目,需要用到爬虫,所以趁此机会研究一下怎么抓取到这个
  数据。
踩坑过程

最先使用的是火车(头)采集器,配置过程不算很麻烦,只是效果实在不敢恭维,稳定性很差,同一个链接地址,一会儿能采集到数据,一会儿采集不到,完全摸不到套路,果断弃坑。

然后使用的是八爪鱼采集器,配置不很复杂,网上有不少配置教程,也有些简易的模板可直接使用,功能比较强大,自带浏览器功能,只要是页面上能看到的内容基本上都能抓取到。就是数据抓取后导出时需要付费(以积分形式,注册账号给2000,之后花RMB购买)。还有就是在操作的过程中延时不能很好地控制(也许是我不会配置这个),造成触发了某宝的反爬机制,弹出了登录验证,再之后就不知道怎么配置去绕过这个验证了,不得已弃坑。

最后接收到领导的要求和客观事实的存在,研究怎么自己开发实现这样的功能。经过将近一周的努力,现在基本可以通过指定的验证,进行数据的抓取。
(声明一下,最初是从网上找了个项目MyCrawler,现在的功能是在该项目的基础上实现的,只是使用到了项目包结构,没有使用内部代码,实在是懒得自己建项目,弄结构了。
原项目地址:https://www.cnblogs.com/sanmu...。
如果原作者介意的话,请联系我删除不相关代码,联系方式我会放在文末,谢谢。)

    1)刚下载时项目中使用后得不到某宝的数据,因为数据是动态生成的。
    2)在项目中使用Jsoup去获取数据,也是获取不到动态生成的数据。
    3)使用HttpUnit去获取数据,某宝的取不到,用某度的首页试了下,是可以的。原因没找到,也不知道该怎么去找,
    反正就是response里空的,啥都没有,很崩溃地弃坑了。
    4)终于说到今天的主角了,在网上找了N久,最后找到了Selenium。顺便说下,在此之前还找到了JxBrowser,不
    过用不明白,果断就算了。话说后来他们客服还打电话询问情况来着。。。

开发过程

开发环境

1)Win 10专业版 64位
2)JDK 1.8
3)Intellij IDEA Ultimate 2016.3
4)Maven用的IDEA自带的Bundled (Maven 3)
5)Firefox 61 中文版
6)Selenium 3.11.0
7)geckodriver 0.20.0

开发思路

 由于反爬机制的存在,为避免数据抓到到一部分,被迫中断,所以采取分步抓取的方式。
 1)打开某宝首页,搜索店铺,关键字为想要数据的地区(至于我用的哪个地区,代码里有的),抓取并保存
 店铺列表。需要过滤,因为搜索结果中会包含不相关的店铺。我是根据店铺名称、卖家、地区中包含特定关键
 字来过滤的。
 2)把店铺列表的url做为输入,循环店铺列表url并进入,为方便操作,这一步要拼接部分地址,进入的是该店铺
 所有宝贝列表页面,而且是按销量排序后的。抓取并保存宝贝列表。
 3)把宝贝列表的url做为输入,循环宝贝列表url并进入,抓取交易量数据并保存。

开发进度

 目前开发出来的是开发思路中的步骤1)和2),其中步骤1)不会出现登录验证,步骤2)会出现。目前代码
 中包含登录验证部分。后续的部分会继续开发。目前代码运行中,在抓取宝贝列表的数据,400多个店铺要抓
 取还是需要不少时间的,为减少登录验证弹出的可能,设定了宝贝翻页间隔30秒。
 有需求代码的同学可在评论中留下邮箱,我看到了会打包邮寄的。

联系方式
邮箱:874544323@qq.com
也可以加QQ交流。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71489.html

相关文章

  • selenuim操作基于REACT实现的富文本编辑器1

    摘要:中大多数的输入框都是标签,但是由于业务中前端有使用到基于实现的富文本编辑器,在实现自动化测试编写时自然会涉及到对富文本器进行操作处理检查该编辑器的元素,可以看到和正常的不同,该结构为一个里面裹了个而在其中输入文字,则是在改变中的如果有换行的 web中大多数的输入框都是标签,但是由于业务中前端有使用到基于REACT实现的富文本编辑器,在实现自动化测试编写时自然会涉及到对富文本器进行操作处...

    since1986 评论0 收藏0
  • selenuim-下拉框(单选)-python

    摘要:一通过定位下拉框先导入的模块,在使用方法进行操作方法一定位不等于不等于如果选项值不是固定的,直接将固定值替换成变量即可下面是的具体方法通过索引定位通过值定位通过文本值定位取消所有选项取消对应选项取消对应选项取消对应文本选项返回第一个选 showImg(https://segmentfault.com/img/bVbk4IA);一、通过select定位下拉框先导入Select的模块,在使...

    KevinYan 评论0 收藏0
  • 电商系统设计之商品 (下)

    摘要:订单号用户商品标题商品价格商品封面图商品其他属性小明爱疯手机其他属性像上表中设计,有人会问了那关联的意义何在呢我的回答是保持数据关联,虽然商户有可能改变商品属性,但作为一名程序员,应该尽可能的记录用户所有的动作。 showImg(https://segmentfault.com/img/bVbdtuc?w=1824&h=1028); 电商大伙每天都在用,类似某猫,某狗等。电商系统设计看...

    shiguibiao 评论0 收藏0
  • 1.2-知识图谱有什么用?

    摘要:知识图谱经过几年的发展已经得到广泛的应用。例如,某地区某行业连续出现了多笔逾期贷款,通过对行业和客户的知识图谱进行分析,可以及时发现该地区相关行业存在潜在风险的客户。 知识图谱经过几年的发展已经得到广泛的应用。当知识图谱遇上人工智能,更加突显出了它的优势和价值。 最先应用于搜索 ![用Google搜索泰姬陵]() 最典型的就是在谷歌搜索引擎里面应用。谷歌是在2012年率先提出来知识图...

    bergwhite 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<