更多>>关于我们

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

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

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

更多>>官方微博

西安鲲之鹏
陕西 西安

加关注

  • 【经验分享】使用Frida脚本强制给okhttp3.OkHttpClient设置代理。
    背景:某些应用使用Proxy.NO_PROXY跳过系统代理设置(例如附图),导致代理模式无法抓到HTTPS流量。

    脚本如下:
    Java.perform(function(){
    // OkHttpClient强制设置代理
    var OkHttpClient = Java.use("okhttp3.OkHttpClient");
    var OkHttpBuilder = Java.use("okhttp3.OkHttpClient$Builder");
    var Proxy = Java.use("java.net.Proxy");
    var ProxyType = Java.use("java.net.Proxy$Type");
    var InetSocketAddress = Java.use("java.net.InetSocketAddress");
    // 要设置的代理
    var proxy = Proxy.$new(ProxyType.SOCKS.value, InetSocketAddress.createUnresolved("IP", int_port));

    OkHttpClient.newBuilder.overload().implementation = function() {
    return OkHttpBuilder.$new();
    }
    OkHttpBuilder.build.overload().implementation = function() {
    console.log('[+] Installing proxy');
    this.proxy(proxy);
    return this.build();
    }
    OkHttpBuilder.proxy.overload("java.net.Proxy").implementation = function(input_proxy) {
    console.log('[+] Changing proxy');
    return this.proxy(proxy);
    }
    });

    function lookup_okhttpclient(){
    // 查看内存中的okhttp3.OkHttpClient实例的代理
    Java.perform(function(){
    Java.choose('okhttp3.OkHttpClient',
    {
    onMatch: function (instance){
    console.log('Found instance: ' + instance + ', Current proxy: ' + instance.proxy());
    },
    onComplete: function ()
    {
    }
    });
    });
    }

    另外,通过调用lookup_okhttpclient()可以动态查看内存中okhttp3.OkHttpClient实例的代理设置情况。
    发布时间:2022-11-09 20:33:36
  • 【经验分享】系统日期不正确可能会导致出现证书错误。
    给Nexus 6P刷机后,发现在浏览器内不管访问什么网站都提示证书错误(如附图1所示),在Termux里更新源也是证书错误(如附图2所示)。折腾了很长时间才发现原来是系统日期设置的不正确,如附图3所示。系统日期异常导致证书未生效过着已过期。 ​​​
    发布时间:2022-11-05 12:17:51
  • 【经验分享】apache mod_proxy实现url转发时如何避免后端域名的DNS缓存

    方法如下示例,加项disablereuse=On配置项即可:
    ProxyPass / http://后端域名/ retry=0 disablereuse=On

    关于disablereuse参数mod_proxy文档(https://httpd.apache.org/docs/2.4/mod/mod_proxy.html)有说明:
    This parameter should be used when you want to force mod_proxy to immediately close a connection to the backend after being used, and thus, disable its persistent connection and pool for that backend. This helps in various situations where a firewall between Apache httpd and the backend server (regardless of protocol) tends to silently drop connections or when backends themselves may be under round- robin DNS. When connection reuse is enabled each backend domain is resolved (with a DNS query) only once per child process and cached for all further connections until the child is recycled. To disable connection reuse, set this property value to On.
    发布时间:2022-11-02 11:14:38
  • 【经验分享】ttyd - Share your terminal over the web
    ttyd是一款能将Linux/Andorid/Windows终端以Web形式展现的命令行工具,用法简单但功能强大。项目主页是:github.com/tsl0922/ttyd。
    releases里有编译好的二进制程序,直接下载系统对应版本即可使用,无需安装。

    用法举例:
    Linux:执行"ttyd login"即可,支持系统账号登录认证。更高级的用法可以参考这里github.com/tsl0922/ttyd/wiki/Example-Usage。效果如附图1所示。
    Andorid:执行"ttyd bash"即可。效果如附图2所示。
    Windows:执行"ttyd cmd"即可。效果如附图3所示。

    在Linux上如何ttyd配置为服务?
    参见:github.com/tsl0922/ttyd/wiki/Systemd-service#systemd-service-on-linux
    发布时间:2022-11-01 21:16:59
  • 【经验分享】推荐一个支持语法高亮的cat命令行工具 - bat
    项目主页是:github.com/sharkdp/bat/,bat支持对大部分编程语言和标记语言提供语法高亮显示。可以作为cat命令的高级替代品。采用Rust语言编写。
    效果如附图所示。 ​​​
    发布时间:2022-10-30 16:01:32
  • 【经验分享】proxychains Windows版
    借助proxychains可以让不支持代理的程序强制走代理,proxychains-windows是其Windows版本,项目主页:github.com/shunf4/proxychains-windows。
    其原理是Hook方式实现:通过劫持connect, WSAConnect, ConnectEx, GetAddrInfoW等函数调用。

    直接从releases里下载编译好的二进制版本,修改配置文件后即可使用。
    配置文件放置于:%USERPROFILE%\.proxychains\proxychains.conf。

    用法示例:
    proxychains curl http://httpbin.org/ip
    proxychains "C:\Program Files\Mozilla Firefox\firefox.exe"
    发布时间:2022-10-29 12:48:45
  • 【经验分享】推荐两个Python实现的adb客户端库

    原理如附图所示,直接通过socket和"adb server"进行交互来实现功能,而非调用adb二进制客户端程序实现。也就是adb.exe的Python实现。
    第一个是:adbutils,项目主页是github.com//openatx/adbutils。
    第二个是:pure-python-adb,项目主页是github.com//Swind/pure-python-adb。

    PS:uiautomator2中使用了adbutils。
    发布时间:2022-10-29 09:11:53
  • 【经验分享】如何adb连接远程的安卓设备?

    方法一:直接远程连接。
    (1)在安卓设备上开启网络ADB(即adb over TCP/IP)。可以使用"ADB Manager"这个APP,如附图1所示。adbd默认监听设备上的5555端口。
    (2)然后通过路由器端口映射或者frp内网穿透,将设备的5555端口暴露出来。
    (3)最后在本地使用“adb connect 远程IP:远程端口”即可连接。
    这个方法的缺点是不安全,任何人都能连接。

    方法二:通过ssh隧道中转连接。
    将安卓设备连接在一台Linux机器上,然后本地通过ssh隧道安全地和设备建立连接。
    首先看一下adb的工作原理,如附图2所示,"adb server"位于主控端(PC),“adbd后台进程”位于安卓设备上。"adb server"和“adbd"通过USB或者TCP通信。"adb server"监听TCP 5037端口,"adb客户端"通过该端口与其进行数据交互:执行命令、获取命令执行结果。
    知道原理后实现起来就不难了:对于"adb客户端"来说,它默认是通过TCP://127.0.0.1:5037来连接"adb server",我们只要把远程的5037端口映射到本地,本地的"adb客户端"就能连接上远程的"adb server"(就和连接本机的"adb server"一样)。

    具体实现思路如下:
    (1)将所有需要访问的安卓设备连接到一台Linux机器上,这台机器可以被远程ssh访问。确保在Linux上"adb devices"能够正常看到设备。
    (2)使用ssh本地端口映射,将Linux机器的5037映射到本地,例如
    ssh -L 5037:127.0.0.1:5037 user@host
    (3)然后在本地执行"adb devices"就能看到和远程Linux上一样的设备列表,如附图3所示。注意:本地的adb版本要和远程Linux上的adb server版本一致,否则会出错。之后的操作就和使用本地的adb连接一样了。
    (4)这种模式下,如何使用scrcpy远程控制设备呢?
    通过上面操作我们已经成功建立了adb远程连接,但是使用scrcpy的时候会发现无法显示出设备图像,提示“connect: No error”错误。这是因为scrcpy在工作的时候需要用到27183端口(scrcpy-server会监听该端口,scrcpy客户端通过这个端口和服务端进行通信),我们还需要将这个端口也从远程映射到本地来(详见scrcpy的官方文档),命令如下:
    ssh -L 27183:127.0.0.1:27183 user@host
    如此scrcpy就能正常工作了,如附图4所示。
    发布时间:2022-10-29 09:05:44
  • 【经验分享】编译Haproxy时加入Lua支持。
    Lua是一种嵌入式编程语言,HAProxy支持通过Lua脚本实现更过强大的功能。按如下步骤操作,可以给Haproxy加入Lua支持。

    (1)先编译Lua。
    从官方下载Lua源码(https://www.lua.org/start.html),进入src目录,make linux即可。将编译生成lua可执行文件lua和luac。记下lua可执行文件所在路径,例如/home/qi/haproxy_backconnect_proxies/lua-5.3.6/src 。
    编译时如果出现"lua.c:82:31: fatal error: readline/readline.h: 没有那个文件或目录"问题,请先安装"sudo apt-get install -y libreadline-dev”(Ubuntu下)。

    (2)编译Haproxy。
    从官方下载源码,编译时加入USE_LUA=1选项,并制定lua可执行文件所在路径,完整如下:
    make TARGET=generic USE_DL=1 USE_CRYPT_H=1 USE_LUA=1 LUA_INC=/home/qi/haproxy_backconnect_proxies/lua-5.3.6/src LUA_LIB=/home/qi/haproxy_backconnect_proxies/lua-5.3.6/src

    另外Lua默认会从/usr/local/share/lua/5.3/下寻找库文件,如果从网上下载的第三方库库例如json.lua,将放置于该目录下。
    发布时间:2022-08-27 13:06:25
  • 【经验分享】如何让Linux系统预留指定端口,防止被自动分配机制拿走(占用)。
    背景:系统上开启了很多网络服务,重启某个业务时经常出现端口被占用的情况。

    解决方法:
    以Ubuntu 16.04为例,编辑 /etc/sysctl.conf,加入如下配置行:
    net.ipv4.ip_local_reserved_ports=6666,7777,8888,9999,54001-54100
    保存,然后执行sudo sysctl -p生效。

    这里的"6666,7777,8888,9999,54001-54100"为预留端口。经过这样设置后,这些端口就不会被系统自动分配给connect()和bind() 端口0的程序。
    发布时间:2022-08-27 10:31:21
当前位置: 首页 > 公司微博 >
  • 西安鲲之鹏

    发布时间: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数据量统计截图。 ​​​​

    阅读全文 + 去微博评论 +