btlet.com DHT磁力 Go爬虫 PHP前端 Mysql+Sphinx Coreseek搜索

前段时间我们弄了btlike项目,但是后来停止更新了。 现在我们重新立了一个btlet的项目,大家有兴趣的话可以来看看。

演示地址:http://www.btlet.com

github地址:https://github.com/qsbaq/btlet.com

爬虫是Go写的,PHP部分基于Onethink

如果大家觉得项目好的话,记得赞助我们哦~

 

VPS主机推荐:

Linode 月付5刀的套餐 日本东京2

Vultr 充5美元可以用5个月VPS 充值最高送100美元

老季常用国内/国外VPS推荐总结

环境需求:

64位的系统版本( x64)

php >  5.3.0

推荐PHP空间

2287空间:http://www.22g87.com

老季淘宝店:https://item.taobao.com/item.htm?id=41356970136

 

安装步骤:

1、新建数据库 btlet ,导入 init.sql

2、运行爬虫(爬虫可以分布在多台机器上同时运行,使用参数连接到指定数据库即可) , 参数详情:

-u=”btlet”                数据库用户名

-p=”laoji.org”         数据库密码

-h=”v.laoji.org”      数据库地址,默认是localhost

-d=”btlet”                数据库名

-P=”3306″               数据库端口,默认3306

Windows ( spider.exe-forwin 重命名为:spider.exe,可以先运行文件夹中的 cmd.bat ,然后运行一下命令):

Linux ( spider-forlinux 重命名为:spider):

爬虫可以分散在N台机器上运行,只需指定数据库IP

注:爬虫必须在公网IP上运行,内网爬不到数据 Linux下同理,可以将爬虫挂在screen命令中运行。

Screen运行实例:

等到开始跳出文字,刚开始的时候有些慢。直到出现下面内容: 2017/02/21 07:11:54 ed2bea744442aafd21102d6e2f5d52eb7d2973d4 2017/02/21 07:12:07 c26ede340f0f620dab01835f48177bbbfbf27dc0

切出Screen返回刚才的终端:

CTRL+A,d

具体Screen使用方法请看:Linux Screen 简单用法 图文教程

 

3、上传文件到php空间中(空间必须支持 php-mysqli 扩展),并确保文件权限:

Runtime (Linux中确定权限为777:chmod 777 Runtime -R)

4、配置php中的数据库文件:

将/Application/Common/Conf/config.sample.php重命名为: Application/Common/Conf/config.php,修改 第40行开始:

将/Application/User/Conf/config.sample.php重命名为:/Application/User/Conf/config.php。修改 第18行:

5、Rewrite 配置

nginx下配置Rewrite规则:

 

Apache 环境下只需支持.htaccess即可。

 

 

6、前端php后台地址(请确保上面的rewrite已正常工作,否则无法打开后台)

/admin 默认

用户名:admin

默认密码:laoji.org

 

7、Linux中每12小时,重启爬虫spider。我们把爬虫放在/root目录中

crontab -e

添加如下命令:

 

8、设置每天爬取统计,同爬虫设置一样

Linux 下 可以加入到crontab中,

-date=”2017-02-16″   // 指定统计日期,如不带此参数默认统计昨天的数据

windows中可以加入到计划任务中。

 

9、启用sphinx/coreseek搜索(可选项)

CoreSeek 中文搜索 安装教程

在crontab中添加coreseek定时重建索引任务:

crontab -e

 

原生的sphinx教程,使用coreseek的不需要安装:

CentOS6.4 64位下安装sphinx及sphinx for php扩展

必须确定php环境已支持sphinx,在phpinfo中看到如下扩展:

 

配置sphinx.conf

vi /usr/local/sphinx/etc/sphinx.conf

配置PHP文件:

在php的配置文件中启用Application/Common/Conf/config.php

 

 

 

常见问题:

  • bash: ./spider: cannot execute binary file

请检查系统版本是64位的( x64)版本。我们git包里只编译了X64的,X86的有环境的小伙伴可以自行编译。       大家有什么问题的话可以在这里留言或者加QQ群提问!

点赞
  1. 小哥说道:

    后台一直提示验证码错误,无法登陆进去。

    1. 百度搜索一下OneThink跳过验证码~

  2. 小哥说道:

    请问后台密码怎么修改,看了一下数据库,不是MD5加密。。。。

  3. 小哥说道:

    爬虫报错:
    panic: Error 1153: Got a packet bigger than 'max_allowed_packet' bytes

    1. 需要修改mysql的里max_allowed_packet的值

  4. test说道:

    panic: Error 1366: Incorrect string value: '\xB7s\xA7@37...' for column 'name' at row 1
    博主爬虫遇到这样的情况如何解决?

    1. name长度不对,将数据库中的name加长

      1. test说道:

        varchar 250 了,是不是要改成text

      2. test说道:

        改成text也是一样出这个错误是否是编码问题?

  5. zairoo说道:

    爬虫经常停止,name那个编码问题吗

    1. 亲,你应该找个大内存的vps

      1. jim说道:

        2G内存
        panic: Error 1366: Incorrect string value: '\xD3\xC5\xD0\xE3\xB6\xF9...' for column 'name' at row 1
        爬蟲经常出现这样停止了。

        1. 种子的名称过长导致了错误,可以尝试将name的长度改大一些。

          1. jim说道:

            把字符集统一改为utf8mb4,还是一样。这个是不是需要go里面进行字符的处理呢,

          2. go 里面使用的是UTF8的编码,跟php是一致的。

          3. jim说道:

            panic: Error 1366: Incorrect string value: '\xC1\xEB\xE8\xE7\xED\xE5...' for column 'name' at row 1
            就是这样。编码都是统一的。这个是不是特殊字符引起的呢?

  6. jim说道:

    爬虫经常自动停了,如何解决? panic: Error 1406: Data too long for column 'files' at row 1

    1. 你的files文件长度不对,检查一下见结构吧~

  7. godhead说道:

    其实,我觉得,既然是爬虫和服务器分开的版本,建议你修改一下爬虫,让它可以在内网运行哦,我记得我以前见到过可以内网运行的爬虫,只要映射一下端口就可以了,毕竟,现在很大一部分的vps都是不允许爬虫运行的。 :smile:

  8. 任文涛说道:

    为什么导入数据库的时候会出现这个#1067 - Invalid default value for 'field_group'

    1. 拷贝所有语句直接在sql里运行。

  9. 布酱说道:

    请问这个有安装教程么

    1. 这个教程已经很详细,没有更详细的安装教程了。
      有什么别的问题可以加群。

  10. lewss说道:

    :redface: 是不支持中文搜索呢,还是没有数据呢?

    1. 支持中文搜索的,请看演示站。

  11. 啪啪君说道:

    求问博主
    这个跟ssbc比较 采集效率和稳定性 哪个更好呢

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up