更多>>关于我们

西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效获取互联网任何公开可见信息。

您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。

数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。

更多>>官方微博

西安鲲之鹏
陕西 西安

加关注

  • 【逆向分析】CMCC“和助手”APP(2.9)HTTP加密方式分析
    1. 直接抓包会发现“和助手”的请求和应答数据都是加密的。如附图1所示。
    下面来分析下加解密算法,最终目的是实现直接和服务端进行HTTP交互。

    2.APP运行后会释放gatewayClient-2-9目录,里面是HTML和JS文件。通过JS里的关键词得知,“和助手”采用的WADE-MOBILE框架。奇怪的是关于WADE-MOBILE网上的介绍很少,只找到这篇有用的介绍http://www.docin.com/p-2187443660.html,大体了解到这个框架使得安卓APP能够使用HTML+JS实现前端展示,通过JS代码调用安卓API实现业务功能(比如与服务端交互)。

    3. 从common.js中的callSvc(),追踪到mobile-client.js中的Mobile.dataRequest(),继续追踪到wade-mobile.js中的WadeMobile.dataRequest(),继续追踪到 androidExecute(),最后追踪到mobile-core.js中的PluginManager.exec()。JS里通过PluginManager.exec()来实现调用安卓Java代码里的功能。如附图2所示。

    4. 通过PluginManager.exec()调用的函数名,在Java代码中可以寻找到具体的实现。例如"dataRequest",应该是实现后台交互的。在Java代码中找到dataRequest()的实现如附图3所示。

    通过进一步跟踪,在transPostData()中可以看到HTTP参数的封装过程,如附图4所示。
    这里的key是DES的秘钥,发给服务端用于解密客户端数据。data是要发送的数据部分,也被使用MobileSecurity.requestEncrypt()加密了。

    需要注意的是这个key本身也是经过加密的,查看MobileSecurity.getDesKey()代码如附图5所示,这里key的值是经过RSA加密的(公钥位于res\raw\public_key)。另外,这里的key并不是固定的,是在每次MobileSecurity类初始化的时候随机生成的,如附图6所示。
    另外,DESKeySpec(k)时,如果k的长度如果超过8字节,将只取前8字节。

    应答数据的解密是通过MobileSecurity.responseDecrypt()实现的,附图7和8所示。

    梳理一下“和助手”的加解密流程:
    (1)APP每次会生成一个随机的key用于DES加解密。
    (2)HTTP请求时会把key作为一个参数(使用RSA加密后)传递给服务端,同时将其它数据通过DES加密后放到data参数中。
    (3)服务端接收到数据后,先用RSA私钥解密出key的明文,然后根据key再DES解密出data明文。
    (4)服务端将HTTP应答数据也使用该key进行DES加密后回送。
    (5)客户端收到HTTP应答数据后使用该key进行DES解密。

    如附图9所示,是我们对服务端应答数据解密后的一个示例(中文部分显示为乱码)。
    发布时间:2020-10-21 15:07:39
  • 【疑问】Intel的CPU比AMD的CPU对安卓模拟器的支持更好?同一个版本的安卓模拟器、同一个APP、同样的HOOK代码,在Intel下稳定运行,但在客户的AMD下出现各种各样的问题(应用闪退、应用崩溃、桌面卡死)。然后让客户换了一个Intel的环境试了下,没任何问题。 ​​​​
    发布时间:2020-10-20 17:24:47
  • 【经验分享】如何查询一个代理(IP)是机房IP(Datacenter IP)还是家庭IP(Residential IP)?

    这里推荐一个查询网站:IPHub,网址是http://t.cn/A6bOvWpt
    输入待查询的IP,点击“Lookup”按钮。
    1. 如果查询结果Type字段中含有“Residential”字样,则说明是家用IP。如附图1、2所示。
    2.如果查询结果Type中仅含有“Hosting”字样,而无“Residential”字样,则说明是机房IP。如附图3所示。

    顺便说一下,如果你的业务需要使用家庭IP(使用机房IP会被风控),例如做亚马逊测评。可以戳这里购买 >>> http://t.cn/A6bOvWpq
    发布时间:2020-10-16 19:57:48
  • 【经验分享】周边POI数据采集的时候常常会因为搜索中心点选取不足导致最终数据缺失的问题,在这里我们提出了一种利用arcpy实现的对待采集区域网格化,并导出区域内网格中心点坐标的的思路,通过这种方式可以保证对待采集区域的完整覆盖。 查看详情戳这里 >>>  http://t.cn/A6ba1Kr8 ​​​​
    发布时间:2020-10-12 16:12:06
  • 【经验分享】导入arcpy出现 "DLL load failed: %1 不是有效的 Win32 应用程序"问题的解决

    arcgisscripting需要Python 32位,用64位Python就会出现这个问题。arcgis在安装的时候会自动安装一个32位的Python,并通过pth文件设置好了arcpy和arcgisscripting库的路径,位置在C:\Python27\ArcGIS10.4,使用这个目录下的 32位python即可。
    发布时间:2020-10-11 13:14:11
  • 我查查APP最新采集方案演示:根据条码采集商品在各商超门店价格  西安鲲之鹏的微博视频 ​​​​

    发布时间:2020-09-25 11:46:12
  • 【经验分享】百度地图APP版POI边界坐标参数采集解析方案

    如附图1-3所示,是从百度地图APP采集到的POI边界GEOJSON数据,如何将其转换为有效的经纬度数据呢?详见 >>> www.site-digger.com/html/articles/20200916/816.html http://t.cn/A64HbBja

    如附图4所示,是成功解析GEOJSON数据后,利用高德地图API绘制的多边形区域(图4的下半部分)和在百度地图中实际查询该POI的边界区域(图4的上半部分)的对比。可以看到是完全吻合的。
    发布时间:2020-09-16 17:20:51
  • 【经验分享】终于实现携程App酒店房型列表数据解析
    1. 携程App在加载房型数据时没有使用HTTP协议,而使用了自定义的通信协议SOTP,详见(ctrip.business.sotp.SOTPConnection)类。
    2. SOTP协议返回的数据是经过压缩和系列化的,需要先解压然后反序列化(非JSON),才能得到原文。 ​​​​
    发布时间:2020-09-03 13:11:46
  • 【经验分享】Ubuntu server下使用gcp出现“dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11”问题的解决方法

    gcp是增强版的cp实现,最大的优势在于它可以显示实时的速度和整体的进度。关于gcp的详细介绍见这里https://linux.cn/thread/11868/1/1/

    在server终端下使用时会因为缺少X环境而报错。解决方法:
    dbus-launch gcp --help
    发布时间:2020-08-28 12:29:07
  • "小红书APP"商品数据采集,如附图所示 ​​​​
    发布时间:2020-08-10 12:39:13
当前位置: 首页 > 公司微博 >
  • 西安鲲之鹏

    发布时间:2017-09-28 21:48:39
    【新品发布】正规IDC机房17万IP代理招租,按流量计费,无带宽和并发限制! 遍布世界57个国家,700台专业服务器,每台1C的IP,共计17万IP。支持按国家筛选!默认自动负载均衡!
    点击查看详情 >>> http://t.cn/R0WMsU2

    国家和IP数量如下表:
    Country IP Count
    Turkey 256
    Canada 512
    Madagascar 2560
    Italy 512
    Czech Republic 256
    Iran (Islamic Republic of) 256
    Hungary 512
    Qatar 256
    Luxembourg 256
    France 256
    Slovakia 256
    Ireland 768
    Hong Kong 256
    Nigeria 768
    Bolivia 2816
    Norway 512
    Bangladesh 256
    Israel 512
    Australia 256
    Indonesia 256
    Jordan 256
    Germany 18688
    Nicaragua 2560
    Belgium 512
    China 512
    Iraq 256
    Philippines 256
    Taiwan 256
    Spain 512
    Ukraine 256
    Netherlands 512
    Denmark 512
    Poland 256
    Finland 768
    Saudi Arabia 256
    United States 83712
    Sweden 768
    Vietnam 256
    Kenya 256
    Switzerland 768
    New Zealand 256
    Russia 768
    Brazil 512
    Bulgaria 256
    Romania 512
    Portugal 512
    Mexico 256
    United Arab Emirates 256
    India 50688
    United Kingdom 6144
    Malaysia 256
    Austria 768
    Congo 2560
    Greece 512
    Japan 512
    South Korea 256
    Cyprus 256

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-27 09:56:59
    淘宝外卖(口碑外卖)全国所有城市商户数据2017年9月底更新(62.8万家)。2017年9月底更新。含店招、营业执照和餐饮服务许可证图片文件。 >>> http://t.cn/R0oybU9 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-27 09:55:35
    是谁把我的7777端口占用了? lsof  -i:7777 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-22 21:32:57
    成功绕过淘宝(口碑)外卖签名机制,顺利拿到Ajax返回数据。
    PS:常规模拟浏览器方法无效,需结合抓包。 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-22 11:34:07
    Firefox历史版本下载地址:http://t.cn/Rbu2y44
    PS:slimerjs支持Firefox from 38.0 to 52.0. ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-22 10:06:04

    【无关技术】更多的时候是做一个运维,看着爬虫输出的信息越快越开心 西安鲲之鹏的微博视频 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-20 17:23:31
    【经验分享】Chrome V55以后不支持设置页面编码了(不信你试试看)。不过,这货(Set Character Encoding插件)可以帮你实现。 http://t.cn/RaIDInW ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-14 15:10:39
    【经验分享】由于项目需要在Linux Server下将近千万个word文档(*.doc)转换为文本格式(html或txt),经测试效果最好的方法是使用LibreOffice的命令行工具。

    安装:
    sudo apt-get purge libreoffice-core
    sudo add-apt-repository -y ppa:libreoffice/ppa
    sudo apt-get update
    sudo apt-get install libreoffice

    doc转txt示例:
    soffice --headless --convert-to txt test.doc

    doc转html示例:
    soffice --headless --convert-to html test.doc

    关于convert-to参数的更多说明见这里 >>> http://t.cn/RVGwrbi

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-08-17 09:55:51
    搜房网(房天下)全国新房楼盘+二手房小区数据2017年07月份更新(“小区名称”,”城市”,”小区地址”,”项目特色”,”所属区域”,”邮编”,”产权描述”,”物业类别”,”竣工时间”,”开发商”,”建筑结构”,”建筑类别”,”建筑面积”,”占地面积”,”当期户数”,”总户数”,”绿化率”,”容积率”,”物业费”,”停车位”,”开盘时间”,”交房时间”,”小区简介”,”交通状况”,”周边信息”,”经度”,”纬度”,”物业公司”,”价格”,”页面链接”,”地图链接”,”区县”,”商 圈”,”装修情况”,”物业地址”,”入住时间”,”物业类型”,”环比上月”,”详情页链接”,”新房/二手房”,”newcode”) >>> 示例数据:http://t.cn/RCZcOAe

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-08-10 16:03:33
    【经验分享】利用Fiddler2的Custom Rules自动抓取App的TOKEN并记录到文件 >>> http://t.cn/R9RdWc3 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-08-05 10:50:19
    【经验分享】某拨号服务器的Web API接口突然变得不稳定,重启Apache2后正常,但是过不来多久又会挂掉。查看error日志,发现如下信息:
    """
    [mpm_event:error] [pid 54893:tid 140124506744704] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
    """
    谷歌查询相关资料得知需要调整/etc/apache2/mods-available/mpm_event.conf中的相关参数,将ServerLimit 从默认的16修改为30,将MaxRequestWorkers修改为750,然后重启Apache,问题得到解决。

    这里有两个坑总结一下:
    1)你不一定也使用的是mpm_event模块(还可能是mpm_worker或mpm_prefork),有两种方法判断。第一种方法是根据日志的提示信息如果是“mpm_prefork:error”那说明是mpm_prefork,这个时候就需要修改的是/etc/apache2/mods-available/mpm_prefork.conf文件;第二种方法是使用"apachectl -M"命令,会显示所有加载的模块,如附图所示我的服务器加载的是mpm_event_module。
    2)MaxRequestWorkers的值的上限取决于ServerLimit * ThreadsPerChild的大小。

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-07-26 14:47:36
    给遨游做个广告。目前支持"S5+认证"代理的浏览器几乎没有,但不是没有,让我来告诉你它就是遨游5。 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-07-26 11:54:32
    【经验分享】requests库使用socks5代理提示“Missing dependencies for SOCKS support”问题解决:
    pip install pysocks
    pip install requests[socks]
    >>> http://t.cn/R9ZI4eH ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-07-21 12:30:38
    【经验分享】又解决一个疑难杂症:py2exe打包某使用paste的程序时总是失败,提示“No module named paste”,确认paste库是安装成功的。经过层层追踪最终发现是py2exe中的imp.find_module('paste')报的错。

    经过验证,imp.find_module('paste')果真报错:
    Python 2.7.6 (default, Jun 22 2015, 17:58:13)
    [GCC 4.8.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import imp
    >>> imp.find_module('paste')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named paste
    >>> import paste
    这就奇了怪了,paste明明安装好了,而且工作正常,为何imp找不到它呢?!

    白色不得其解只得求助于stackoverflow(http://t.cn/RKB74OH),果然还是有高人,问题得到成功解决"The main problem seems that paste module doesnt have an __init__.py file"(就是在paste库的目录下建立一个__init__.py的空文件),经测试有效。

    大概半年前就遇到这个问题了,只能将paste换用cherrypy临时解决下,今天总算搞清楚问题了。

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-07-03 10:14:29
    [good]国内知名本地生活信息平台3648万商户数据2017年07月份更新
    附:CSV数据量统计截图。 ​​​​

    阅读全文 + 去微博评论 +

QQ在线客服
欢迎咨询,点击这里给我发送消息。
欢迎咨询,点击这里给我发送消息。

加微信咨询