基于phpspider爬虫框架,抓取简书文章实例(亲测成功)

基于phpspider爬虫框架,抓取简书文章实例(亲测成功)

大家好,又见面了,我是全栈君。

<?php

/**
 * 这个是成功的案例插入数据库
 */

require_once __DIR__ . '/../autoloader.php';

use phpspider\core\phpspider;

/* Do NOT delete this comment */
/* 不要删除这段注释 */ // 不清楚他这个意思,不知道为啥不能删除
//定义一个数组
$configs = array(
    'name' => '简书',
    'log_show' => true,
    'tasknum' => 8,
    // 数据库配置
    'db_config' => array(
        // 数据url地址
        'host' => '127.0.0.1',
        // 数据库端口
        'port' => 3306,
        // 数据库登录账号
        'user' => '***',
        // 密码
        'pass' => '**',
        // 数据库名 切记这个是数据库的名字要一致。可以随意更改,但是要和数据库的名字一致
        'name' => 'lxw_db'),
    'export' => array(
        'type' => 'db',
        'table' => 'jianshu' //添加表, jianshu ,
    ),
    'max_try' => 5,

// 爬取的页面
    'domains' => array('jianshu', 'www.jianshu.com'),
// 抓取的起点
    'scan_urls' => array('https://www.jianshu.com/c/V2CqjW?utm_medium=index-collections&utm_source=desktop'),
// 列表页实例
    'list_url_regexes' => array("https://www.jianshu.com/c/\d+"),
//内容页实例
    'content_url_regexes' => array("https://www.jianshu.com/p/\d+"),

    'fields' => array(
        // 表结构,也就是表字段
        array(
            'name' => 'title',
            'selector' => "//h1",
            //获取所有class值为title的h1节点
            'required' => true
        ),
        array(
            'name' => 'content',
            //获取所有class值为show-content-free的div节点
            'selector' => "//article",
            'required' => true
        ),
    )
);
$spider = new phpspider($configs);
$spider->start();

基于phpspider爬虫框架,抓取简书文章实例(亲测成功)基于phpspider爬虫框架,抓取简书文章实例(亲测成功)s

爬取[糗事百科]
<?php
/**
 *User: lxw
 *Date: 2020-12-29
 */
require_once __DIR__ . '/../autoloader.php';
use phpspider\core\phpspider;
/* Do NOT delete this comment */
/* 不要删除这段注释 */ // 不清楚他这个意思,不知道为啥不能删除

$configs = array(
    'name' => '糗事百科',
    'log_show' => true,
    'tasknum' => 1,
    'domains' => array(
        'qiushibaike.com',
        'www.qiushibaike.com'
    ),
    'scan_urls' => array(
        'http://www.qiushibaike.com'
    ),
    'content_url_regexes' => array(
        "http://www.qiushibaike.com/article/\d+"
    ),
    'list_url_regexes' => array(
        "http://www.qiushibaike.com/8hr/page/\d+"
//        "http://www.qiushibaike.com/8hr/page/\d+\?s=\d+"
    ),


    'max_try' => 5,
    // 数据库配置
    'db_config' => array(
        'host' => '127.0.0.1',
        'port' => 3306,
        'user' => '**',
        'pass' => '**',
        'name' => 'lxw_db'
    ),
    'export' => array(
        'type' => 'db',
        'table' => '360ky' //添加表, jianshu ,
    ),
    'fields' => array(
        array(
            // 抽取内容页的文章内容
            'name' => "title",
            'selector' => "//h1[contains(@class,'article-title')]",
            'required' => true
        ),
        array(
            // 抽取内容页的文章作者
            'name' => "author",
            'selector' => "//span[contains(@class,'side-user-name')]",
            'required' => true
        ),
        array(
            // 抽取内容页的文章内容
            'name' => "content",
            'selector' => "//*[@id='single-next-link']",
            'required' => true
        ),
        array(
            // 抽取内容页的头像
            'name' => "headimg",
            'selector_type' => 'css',
            'selector' => ".side-left-userinfo>img",
            'required' => true
        ),
    ),
);

$spider = new phpspider($configs);
$spider->start();

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111621.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月17日 下午10:00
下一篇 2022年2月17日 下午11:00


相关推荐

  • mqttnet 详解_mqttnet 简记

    mqttnet 详解_mqttnet 简记1.mqttnet开源库,https://github.com/chkr1011/MQTTnet2.服务器端和客户端服务器端和客户端两个,他们需要保持长连接,主要是通过订阅和发布来进行消息的传递交换。MQTT服务端主要用于与多个客户端保持连接,并处理客户端的发布和订阅等逻辑。一般很少直接从服务端发送消息给客户端(可以使用mqttServer.Publish(appMsg);直接发送消息),多…

    2022年6月25日
    105
  • informix的安装步骤

    informix的安装步骤informix 的安装步骤 本人原创 一 环境搭建 linux 版本 CentOS8 0 CentOS7 4 CentOS6 8 本人亲测 6 8 和 7 4 informix 安装包 本人亲测 11 5 和 12 1 informix 服务名 demo on 随意 1 在 Linux 系统下创建组和用户 suroot 必须在 root 权限下 创建组 groupadd g1000informi 创建用户 useradd u1000 g1000 d ho

    2026年3月26日
    2
  • 【数据结构与算法】详解什么是双向链表,并用代码手动实现一个双向链表

    【数据结构与算法】详解什么是双向链表,并用代码手动实现一个双向链表上一篇文章讲解了链表的相关知识 并用代码实现了一个链表结构 那么本文将介绍一下另一种特殊的链表结构 叫做双向链表 顾名思义 普通的链表都是从 head 开始往后遍历结构内的元素 那么双向链表就是既可以从头开始遍历 又可以从结构的末尾开始遍历 上一篇文章的跳转链接 本文就来详细讲解一下双向链表的概念以及如何实现一个双向链表 公众号 Lpyexplore 的编程小屋关注我 每天更新 带你在 python 爬虫的过程中学习前端 还有更多电子书和面试题等你来拿数据结构 双向链表一 什么是双向链表二

    2026年3月18日
    2
  • AssetBundle相关

    AssetBundle相关====&gt;AssetBundle打包:设置好AssetBundle包名后,利用BuildPipeline.BuildAssetBundles("Path");进行打包。该函数有三参和四参的,三参如下:    outputPath : 导出路径  BuildAssetBundleOptions  : 导出选项枚举,内容在后面。 其中包含:是否压缩,是否使用块压缩即LZ4压缩等 BuildTa…

    2022年6月28日
    35
  • C++-友元类

    C++-友元类友元类 nbsp Afriendclass canaccessthe Asignificant repr

    2026年3月18日
    1
  • 什么是可重入函数?

    什么是可重入函数?可重入函数是指能够被多个线程 同时 调用的函数 并且能保证函数结果正确性的函数 在 C 语言中编写可重入函数时 尽量不要使用全局变量或静态变量 如果使用了全局变量或静态变量 就需要特别注意对这类变量访问的互斥 一般采用以下几种措施来保证函数的可重入性 信号量机制 关调度机制 关中断机制等方式 需要注意的是 不要调用不可重入的函数 当调用了不可重入的函数时 会使该函数也变成为不可重入的函数 一般驱

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号