基于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();

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 停用NetworkManager[通俗易懂]

    停用NetworkManager[通俗易懂]managed=false LinuxDeepin11.12,在KDE下使用pppoeconf后发现gnome3中NetworkManager显示“设备未托管”,用pppoeconf联网查找资料:——————————————–修改文件:/etc/NetworkManager/NetworkManag

  • 基于数据驱动的发电设备在线预警研究

    基于数据驱动的发电设备在线预警研究

    2021年11月22日
  • ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍[通俗易懂]

    ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍[通俗易懂]比较目前,针对于ARM平台的主流编译器主要有以下三者:比较ARMCCIARGCCforARM命令行工具IDE中,独立提供仅随其IDE发布,不独立提供独立提供开发商ARMIARGNU(目前由ARM维护)支持的平台Windows、LinuxWindowsWindows、Linux、Mac配套IDEKeilMDK、Develo…

  • bs架构与cs架构的定义和区别_cs架构的优缺点

    bs架构与cs架构的定义和区别_cs架构的优缺点B/S架构是浏览器和服务器架构模式;C/S架构是客户端和服务器架构模式;CS交互性强,响应速度快,安全性强,一般应用于局域网中,对硬件的要求高,但是开发维护成本高;BS交互性相对弱些,响应速度相对慢,安全性相对低,一般应用于广域网中,可以实现跨平台,客户端零维护。所以有些单位日常办公应用BS,在实际生产中使用CS结构。

  • webpack基本配置项_webpack配置文件详解

    webpack基本配置项_webpack配置文件详解前言上篇我们已经配置好了本地开发服务器,但是配置的相对比较凌乱,一个文件中有些是开发时用到的配置,有些是生成时用到的配置,有些是开发和生成都要用到的配置,所以我们这里把环境分为3个环境webpac

  • 页式虚拟存储管理_页式虚拟存储管理的主要特点

    页式虚拟存储管理_页式虚拟存储管理的主要特点页式存储的基本原理    将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(pageframe)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。也就是把内存等分成N份,存放运行的程序时,按分成的快放置即可。但放置时要考虑主存里哪些块已经被占用,这个用主存分配表(位示图)来表示。     分页式存储器的逻辑

发表回复

您的电子邮箱地址不会被公开。

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