更多>>关于我们

西安鲲之鹏网络信息技术有限公司从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 下载 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-02-01 22:16:32
    【经验分享】如何用JS获取CSS :before 伪元素的content值?
    e.g.某网站用CSS :before 伪元素将部分内容进行了“保护”(通过加密的JS动态生成类似如下的CSS伪元素展示信息),常规HTTP交互方法将获取不到内容(注意该CSS属性是加密的JS动态生成的)。
    .anti_spider_txt:before {
        content: '反采集的内容';
    }

    用模拟浏览器方式执行JS即可突破:
    window.getComputedStyle(
    document.querySelector('.anti_spider_txt'), ':before'
    ).getPropertyValue('content');

    PS:如果网站用JS屏覆盖对象的getPropertyValue方法和其它属性,上述方法将失效。
    不过可以通过中间人代理将对应JS代码屏蔽掉,该思路已通过验证。

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-02-01 21:47:27
    【经验分享】Python如何获取字体文件内包含的所有文字编码?
    from fontTools.ttLib import TTFont
    font_path = './fonts/205a5cc78d8914cd4a3f65bd99ff97e0.ttf'
    font = TTFont(font_path)
    print font.getGlyphOrder()
    输出如下:
    ['.notdef', 'uniEDA5', 'uniED53', 'uniEE06', 'uniEDB5', 'uniEC74', 'uniED27', 'uniECD6', 'uniED89', 'uniEC48', 'uniEDEB', 'uniECAA', 'uniEC58', 'uniED0C', 'uniEDBF', 'uniED6D', 'uniEC2D', 'uniECE0', 'uniEC8E', 'uniED42', 'uniECF0', 'uniEDA3', 'uniEC63', 'uniEE05', 'uniECC4', 'uniED78', 'uniED26', 'uniEDD9', 'uniED87', 'uniEC47', 'uniECFA', 'uniECA8', 'uniED5C', 'uniEC1B', 'uniEDBD', 'uniEC7D', 'uniEC2B', 'uniECDE', 'uniED92', 'uniED40', 'uniEDF3', 'uniECB3', 'uniEC61', 'uniED14', 'uniECC3', 'uniED76', 'uniEC35', 'uniEDD8', 'uniEC97', 'uniED4A', 'uniECF9', 'uniEDAC', 'uniED5A', 'uniEC1A', 'uniECCD', 'uniEC7B', 'uniED2F', 'uniEDE2', 'uniED90', 'uniEC50', 'uniEDF2', 'uniECB1', 'uniED65', 'uniED13', 'uniEDC6', 'uniEC86', 'uniEC34', 'uniECE7', 'uniEC95', 'uniED49', 'uniEDFC', 'uniEDAA', 'uniEC6A', 'uniED1D', 'uniECCB', 'uniED7F', 'uniED2D', 'uniEDE0', 'uniECA0', 'uniEC4E', 'uniED01', 'uniED63', 'uniEC22', 'uniEDC4', 'uniEC84', 'uniED37', 'uniECE5', 'uniED99', 'uniEDFA', 'uniECBA', 'uniEC68'
    ]

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-01-24 09:50:57
    【经验分享】让curl自动解压gzip应答:curl --compressed "http://t.cn/hrfhaz"   >>> http://t.cn/RQmBIJE
    附图:
    1)图1,未加--compressed参数,显示乱码,因为网站关注的gzip内容未被解压。
    2)图2,加上显示乱码参数,显示正常。 ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-01-22 15:43:27
    【经验分享】Python读取火狐的SQLite文件,提示"sqlite3.DatabaseError: file is encrypted or is not a database"异常。用SQLite阅读器打开正常。解决方案:下载最新版的sqlite3.dll文件(http://t.cn/hj5v5)覆盖到python27/DLLs内,问题解决。 参考文章: http://t.cn/RQQApNy ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2018-01-06 13:16:42
    Ubuntu server下查看磁盘温度:  sudo hddtemp /dev/sda(具体设备),如附图网页版。如果无温度传感器,会提示“it doesn't have a temperature sensor”. ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-12-25 08:31:00
    【经验分享】设置Mac Mini加电后自启动: sudo setpci -s 0:1f.0 0xa4.b=0
    实测成功。其它方法参考 >>> http://t.cn/RH2C60b ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-12-12 19:03:00
    Ubuntu14.04 64bit下Firefox试了好多版本出现“Couldn't load XPCOM”错误无法正常运行,最后发现firefox-45.0(http://t.cn/RTVXIpO)可以正常工作。 ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-12-06 15:44:12
    【经验分享】Win10远程桌面提示"由于安全设置错误, 客户端无法连接到远程计算机”问题(如附图1网页版)解决:
    1. 运行secpol.msc打开“本地安全策略”。
    2. “本地策略 -> 安全选项 -> 系统加密:将FIPS算法用于加密 、哈希和签名”右键属性,将“本地安全设置”设置为“已禁用”,“应用”并”确定”。(如附图2网页版)
    问题解决。

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-11-23 13:13:06
    [携程网]全国所有城市酒店数据(含经纬度及各房型价格,46w条)2017年11月份更新 >>> http://t.cn/RYwuFGH ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-11-21 10:36:35
    4TB移动硬盘,Ubuntu下fdisk -l看不到,换用 parted -l解决。 ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-11-21 10:24:06
    基于Ubuntu 14.04版本的鲲鹏拨号服务器定期会死机,syslog日志如截图网页版,不得不计划任务定期reboot。16.04版本测试了几个月还没出现死机的情况,后面计划不再使用14.04版本。 ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-11-03 15:24:37
    【经验分享】“selenium + phantomjs”如何正确退出phantomjs进程?
    背景:程序用使用diver.quit()或driver.close()方法退出phantomjs进程偶尔会失败,出现“OSError: Bad file descriptor”异常。经测如下方法可以有效解决问题:

    import signal

    driver.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc
    driver.quit()      

    感谢Stackoverflow上的无私分享者 >>> http://t.cn/RlbPiCbhttp://t.cn/RlbPiCU
    PS:如何在selinum里获取phantomjs进程的ID: driver.service.process.pid
    参见 >>> http://t.cn/RlbPiC4

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-30 22:11:01
    谷歌DNS 8.8.8.8现在貌似故障了,在美国无法解析安居客域名,换用114.114.114.114可以:
    dig @8.8.8.8 www.anjuke.com 查询不到(图1);
    dig @114.114.114.114 www.anjuke.com 能查询到(图2); ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

    发布时间:2017-09-29 17:49:53
    【实践出真知】山东和苏州两地总结出来的经验:pppd持续出现“No response to 3 echo-requests, Serial link appears to be disconnected"可能是宽带接入设备(Modem)负载太大了! ​​​​

    阅读全文 +去微博评论 +

  • 西安鲲之鹏

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

    国家和IP数量如下表:
    CountryIP Count
    Turkey256
    Canada512
    Madagascar2560
    Italy512
    Czech Republic256
    Iran (Islamic Republic of)256
    Hungary512
    Qatar256
    Luxembourg256
    France256
    Slovakia256
    Ireland768
    Hong Kong256
    Nigeria768
    Bolivia2816
    Norway512
    Bangladesh256
    Israel512
    Australia256
    Indonesia256
    Jordan256
    Germany18688
    Nicaragua 2560
    Belgium512
    China512
    Iraq256
    Philippines256
    Taiwan256
    Spain512
    Ukraine256
    Netherlands512
    Denmark512
    Poland256
    Finland768
    Saudi Arabia256
    United States83712
    Sweden768
    Vietnam256
    Kenya256
    Switzerland768
    New Zealand256
    Russia768
    Brazil512
    Bulgaria256
    Romania512
    Portugal512
    Mexico256
    United Arab Emirates256
    India50688
    United Kingdom6144
    Malaysia256
    Austria768
    Congo2560
    Greece512
    Japan512
    South Korea256
    Cyprus256

    阅读全文 +去微博评论 +

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

加微信咨询