更多>>关于我们

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

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

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

更多>>官方微博

西安鲲之鹏
陕西 西安

加关注

  • 【视频演示】受客户委托对淘宝APP-淘鲜达店铺商品数据抓取的可行性进行评估。实测可行(销量也可以采集到),如录屏所示。  西安鲲之鹏的微博视频 ​​​​

    发布时间:2020-02-21 17:44:07
  • 【经验分享】Win8下安装VMware出现"error1316 指定账户已存在"问题的解决

    似乎是之前的安装有注册表残留(在控制面板已安装程序列表里看不到),尝试安装了多次,持续出现"error1316 指定账户已存在"问题,网上有VMware注册表清理工具试了也不管用。

    后来使用Windows Installer CleanUp Utility(Windows Installer 清理实用工具包,简称MSICUU)解决了问题。MSICUU会显示你以前没卸干净的软件列表(如附图1所示), 然后选择你想完全卸掉的项目 ,卸载了就可以了。

    附MSICUU的下载链接>>> O【Windows Installer CleanUp Utility下载】2...
    发布时间:2020-02-19 17:14:47
  • 【视频】携程酒店价格采集对比工具定制版演示
    该最新定制版(2020年)使用Google Chrome Dev Protocol(非Selenium + webdirver模式)实现,不会暴露navigator.webdriver等各种特征,不容易被识别。
    对比17年的版本:采用的是(Selenium + phantomjs)能够被反爬虫机制识别,返回有虚假价格情况,失败率也高。  西安鲲之鹏的微博视频

    发布时间:2020-02-18 15:24:40
  • 【经验分享】一例正则表达式效率低问题的分析

    一直以来都觉得正则表达式的效率非常高,今天遇到一例正则匹配耗时特长的情况,mark一下。
    目标是判断目标网页(大小约350KB)中是否有符合以下要求的子串:
    "至少要有一个不为'的字符<div class="tips_unresult">"

    想当然的写出了如下的代码:
    re.compile(r'[^\']+<div[^<>]+class="tips_unresult">').search(html)
    测试的时候发现这一步耗时特别长,记了一下时,竟然花了差不多10秒,很是诧异。

    后来试着修改了下正则式,如下:
    re.compile(r'[^\']<div[^<>]+class="tips_unresult">').search(html)
    和第一次的相比,区别在于:这里只匹配"<div..."前面有一个非'字符即可,而第一步是匹配"<div..."前面有一个或多个非'字符。
    这次只用了0.004秒,结果相差了1600多倍!

    PS:[汗]第一次的那个代码在以往一个的爬虫中曾执行过70多万次[汗],以前竟然没有发现问题,还以为时间都花在webkit加载页面上了...这样一算竟然多花了近一周的时间。

    独立的测试代码和运行截图如附图所示。
    发布时间:2020-02-17 17:57:15
  • 【经验分享】“supervisor实现无限重试”中的坑

    背景:Debian 10系统,Wifi联网,需要实现系统启动时自动启动autossh。
    问题:如果网络未连接成功(例如,Wifi是在用户登录之后才会连接),启动autossh会失败退出。因此不能直接使用rc.local(在网络连接成功之前就执行了)。于是想到使用supervisor,让其不断的重试,当网络连接正常时就autossh就会正常被启动了,配置如附图1所示。但是发现supervisor最多只重试了3次就放弃了。

    查询supervisor configuration文档(http://supervisord.org/configuration.html?highlight=startretries)得知startretries参数用于控制每次启动的重试次数,默认值是3。

    另外还有一个autorestart参数,如果设置为true,则无条件重启(If true, the process will be unconditionally restarted when it exits, without regard to its exit code.)。但我设置了autorestart为true后,还是只重试了3次。

    为什么呢?在autorestart参数注意事项里看到了如下说明:
    autorestart controls whether supervisord will autorestart a program if it exits after it has successfully started up (the process is in the RUNNING state).

    意思就是说目标program必须成功启动过一次(被标记过为RUNNING状态),autorestart机制才会起作用。

    由于本案例中supervisor服务启动的时候网络连接还没建立成功,所以目标program(autossh)首次启动(3次重试)会失败,这样autorestart机制就没起作用。

    怎么破?
    首先我们要弄清楚supervisor是怎么判断目标程序成功启动了呢。
    在startsecs参数的说明里我们可以看到:
    The total number of seconds which the program needs to stay running after a startup to consider the start successful (moving the process from the STARTING state to the RUNNING state).
    也就是只有目标程序启动保持运行超过startsecs秒才会被认为启动成功了(标记状态为RUNNING)。startsecs默认值是1。本例中autossh由于没有网络连接闪退了,所以supervisor认为其启动失败。

    弄清原理之后,就好办了,我们实现一个这样的脚本:
    (1)先判断网络连接是否正常(可以使用ping),如果不正常则等待10秒(只要超过startsecs值即可)后退出。
    (2)如果网络连接正常,则启动autossh。

    #!/bin/bash

    #
    检测网络是否通畅
    ping -c 1  www.baidu.com
    if [ $? -eq 0 ]
    then
      # 网络正常,启动autossh
      echo "Network is ready"
      sudo /bin/su qi -l -c "/usr/bin/autossh -M 6777 -N -D 127.0.0.1:1080 目标主机SSH参数"
    else
      #
    网络不通,等待11秒后退出
      echo "Network is not ready."
      sleep 11s
      exit 1
    fi

    实测成功。

    附Supervisor Configuration File文档链接:http://supervisord.org/configuration.html
    发布时间:2020-02-15 23:14:20
  • 发布时间:2020-02-14 21:06:44
  • 【经验分享】python2 pip安装frida-tools,在安装prompt-toolkit依赖时出现"No matching distribution found for prompt-toolkit<4.0.0,>=3.0.3 (from frida-tools)"问题(如附图1所示)的解决。

    问题分析:需要的prompt-toolkit版本是 <4.0.0,>=3.0.3,而python 2库中prompt-toolkit的最高版本才是2.0.10。 查询得知"prompt_toolkit 3.0 requires at least Python 3.6." (来源:https://python-prompt-toolkit.readthedocs.io/en/master/),3.0以后版本需要至少python 3.6。

    怎么破?
    (1)下载frida-tools源码包。
    (2)修改setup.py文件,如附图2所示,将prompt-toolkit的版本要求去掉。
    (3)sudo python setup.py install。
    发布时间:2020-02-11 18:55:01
  • 【视频演示】受客户委托对淘宝APP直播弹幕数据抓取的可行性进行评估。实测可行,如录屏所示。  西安鲲之鹏的微博视频 ​​​​

    发布时间:2020-02-11 15:38:51
  • 【经验分享】Linux下如何查看服务器的型号,出厂日期?
    可以使用dmidecode命令查看BIOS信息来实现。
    e.g.
    # 查看机器型号
    sudo dmidecode -s system-product-name
    #
    查看出厂日期
    sudo dmidecode -s bios-release-date

    如图1所示为我最近折腾的TDE上网本的情况;
    如图2所示为公司某服务器的情况;
    如图3所示为阿里云服务器的情况;

    关于dmidecode命令的详细说明见这里 >>> http://t.cn/A6Pemztx
    发布时间:2020-02-08 13:32:58
  • 【经验分享】这两天被冠状病毒困在家,翻出了一台10年前的上网本(TDE山寨货),配置如图1(i686 CPU 1.6GHz,1G RAM)。
    折腾了一下安装各种系统,可能驱动兼容性问题,期间遇到了各种问题,总结如下:

    (1)Chrome OS:
    安装比较顺利,运行也比较流畅,进入系统之后就是一个谷歌浏览器。
    但由于国内无法使用Google相关服务,使用起来比较麻烦,放弃。

    (2)Android系列:
    Bliss OS X86 32位,安装后无法进入桌面环境。
    PrimeOS,没有32位的版本,无法安装。

    (3)Linux发行版:
    Linux Mint 19.3 cinnamon 32位,进入桌面后巨卡,无法正常使用,后来试了兼容模式启动情况好一些。
    Ubuntu 16.04.6 Desktop i386,安装过程复制文件后期卡死,无后文。
    Debian 10.2.0 i386,赞一个,安装过程很流畅(“配置软件包管理器”那步耗时较长),使用也很流畅。

    最终选定使用Debian 10。
    发布时间:2020-02-08 11:17:45
当前位置: 首页 > 公司微博 >
  • 西安鲲之鹏

    发布时间:2018-10-26 18:01:45
    【经验分享】使用openssl模拟与HTTPS网站的交互 >>> http://t.cn/EZSdOL4 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-10-25 17:47:47
    美团外卖北京/上海/广州/杭州/成都五城市商户数据2018年10月份采集更新

    详细字段说明:
    “province” – 省份
    “city” – 城市
    “shop_name” – 店铺名称
    “address” – 店铺地址
    “category” – 大分类
    “third_category” – 小分类
    “phones” – 电话号码
    “score” – 店铺评分
    “min_price” – 起送价
    “month_sales” – 月售
    “shipping_fee” – 配送费
    “per_cost” – 人均消费
    “delivery_time” – 配送时间
    “delivery_tip” – 配送服务信息
    “pic_url” – 店铺图片
    “qualification” – 营业执照
    “shiping_time” – 营业时间
    “lat” – 纬度
    “lng” – 经度
    “comment_num” – 评论数

    >>> http://t.cn/EZfpwD4

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-10-22 16:55:09

    Selenium+Chrome淘宝正常登录方案演示:
    1. 不做特殊处理情况下,Selenium无法正常登录淘宝,会出验无法完成的验证码;
    2. 经过特殊处理后,成功突破淘宝对Selenium的检测,完美登录成功(连验证码都不会出现)。
    演示视频如下:​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-10-17 11:46:05
    【经验分享】如何根据淘宝/天猫的分类ID(categoryId值)获取对应的分类名称?

    (1) 如图1所示,先从商品源码获取"categoryId"参数值,例如1512;
    (2)如图2所示,查表可知对应分类名称为"手机";

    点击这里购买该分类映射表(2018年10月份采集更新):
    http://t.cn/EzwnBs1 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-10-11 14:14:20
    FontEditor Online 赞! >>> http://t.cn/RKDTzTV ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-10-11 12:26:24
    pyv8各版本二进制安装包 >>> http://t.cn/E75lURy ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-09-20 10:34:46
    搜房网(房天下,fang.com)全国所有城市新房楼盘+二手房小区数据2018年08月份采集更新。
    楼盘小区数据共计313,846条(如下图所示) >>> http://t.cn/EvmsEJJ ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-09-13 16:34:41
    【经验分享】如何查看APK的包名和入口Activity?
    比如我们要查看微信的包名和入口Activity,我们先打开微信,然后执行如下adb命令:
    adb shell dumpsys activity | grep mFocusedActivity

    返回信息为:
    mFocusedActivity: ActivityRecord{425d65a0 u0 com.tencent.mm/.ui.LauncherUI t9}
    包名为:com.tencent.mm
    入口Acticity为: .ui.LauncherUI

    有了包名和入口Activity,我们可以测试用adb命令来启动下微信,,先关闭微信,然后执行如下adb命令,会发现微信被启动起来了:
    adb shell am start -n  com.tencent.mm/.ui.LauncherUI

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-09-13 16:21:22
    【经验分享】如何采集小红书最新版(2018年9月)数据 >>> http://t.cn/EvzuZyx ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-09-12 20:53:32
    【干货分享】如何用Python实现自动化操作Android手机?
    鲲之鹏的技术人员在本文介绍了通过Python AndroidViewClient来控制Android手机的方案。点击查看详情 >>> http://t.cn/RssDEpx ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-09-12 20:47:26
    [汽车之家]汽车品牌(196个)、系列(3199个)、型号配置参数(38273条)数据2018年8月采集更新 >>> http://t.cn/Rssgk12 ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-08-31 16:45:29
    【经验分享】fonts.googleapis.com国内被迫罢工,导致数据超市这两天加载速度非常慢(抓包才发现是这个问题,如附图所示)。
    修改functions.php,注释掉如下行,屏蔽掉对应css的加载,问题解决:
    //wp_enqueue_style( 'themonic-fonts', add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ), array(), null );

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-08-29 09:53:19
    【经验分享】如何突破汽车之家的"CSS ::before 伪元素混淆"反采集策略 ?
    简单地说就是:拦截GetModelConfig1.ashx应答,注入JS代码,以暴出“索引-混淆字符明文”映射表。点击这里查看详情说明 >>> http://t.cn/RF2yGAy ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-08-29 09:40:54
    携程网国内酒店用户评论数据(超8163万条) >>> http://t.cn/RF2wUiM ​​​​

    阅读全文 + 去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-08-22 12:22:02
    【经验分享】"Selenium + Firefox"如何使用带用户名密码认证的HTTP代理?

    鲲之鹏的技术人员通过研究终于找到了一个有效并且稳定的解决方案:
    借助close-proxy-authentication这个插件,可以在Selenium + Firefox时自动完成HTTP代理认证,流程是这样的:
    (1)通过Firefox配置选项动态添加close-proxy-authentication这个插件(默认不加载任何插件);
    (2)通过配置选项设置HTTP代理的IP和端口参数;
    (3)设置extensions.closeproxyauth.authtoken的值为base64encode("用户名:密码");
    (4)后续访问网站的时候close-proxy-authentication插件将自动完成代理的授权验证过程,不会再弹出认证窗口;

    点击了解详情 (内附代码)>>> http://t.cn/RkKR45S

    阅读全文 + 去微博评论 +

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

加微信咨询