基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 检测数据库连接泄漏的最佳方法

    检测数据库连接泄漏的最佳方法介绍数据库连接不是免费的,这就是首先使用连接池解决方案的原因。但是,单独的连接池并不能解决与管理数据库连接相关的所有问题。应用程序开发人员必须确保Connection在不再需要时关闭每一个。在幕后,连接池提供了一个逻辑事务,当它被关闭时,它会返回到池中,以便其他并发事务可以进一步重用它。当连接被获取而从未被关闭时,就会发生连接泄漏。何时应检测到连接泄漏?每个关系数据库都提供了一种检查底层连接状态的方法,因此可以轻松打开一个新的SQL终端并检查是否有任何悬空连接。但是,这种简约的方法是

    2026年1月25日
    4
  • mysql5.7 是否支持partition分区?

    mysql5.7 是否支持partition分区?

    2022年2月10日
    55
  • R-L模型算法的优缺点_模型解题

    R-L模型算法的优缺点_模型解题@[TOC]LR模型相关知识点#1.LR归一化问题,什么情况可以不归一化,什么情况必须归一化,#2.为什么提到LR损失函数要能知道交叉熵,为什么是它,以它为损失函数在优化的是一个什么东西,知道它和KL散度以及相对熵的关系#3.提到LR的求解方法,比如SGD,知道SGD和BGD的区别,知道不同的GD方法有什么区别和联系,二阶优化算法知道什么,对比offlinelearning和onlinelearning的区别#4.提到调参,知道模型不同超参数的含义,以及给定一个特定情况,大概要调整哪些参数,怎么

    2022年10月10日
    5
  • Vue富文本编辑器_前端富文本编辑器插件

    Vue富文本编辑器_前端富文本编辑器插件富文本编辑器博客(coder的自我修养)原文链接:http://www.imcoder.fun/archives/1591583350241TinyMC编辑器简介TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。跟其他富文本编辑器相比,有着丰富的插件,支持多种语言,能够满足日常的业务需求并且免费。TinyMCE的优势:开源可商用,基于LGPL2.1插件丰富,自带插件基本涵盖日常所需功能接口丰富,可扩展性强,有能力可以无限拓展功能界面好看,符合现代审美提供经典、内联、沉浸无干

    2022年10月10日
    4
  • 什么软件自动刷点击量(不同的IP在刷网站)

    网络爬虫是目前各大企业获取数据的主要方式,很多人都知道爬虫使用代理IP,但对其中的原因却知之甚少。那为什么代理IP能帮助网络爬虫呢?1、已解决IP限制。目前大部分网站都有反爬虫技术,最常见的限制是IP接入。假如本站点的IP被封掉,可以用代理IP换IP后继续爬虫。2、提高爬虫的效率。如今有了工作效率的要求,不仅是使用单一的爬虫,为了提高爬虫的效率,可以使用多个爬虫来爬虫,这需要更多的IP,同时也需要IP的更换,自然离不开代理IP。以上介绍代理IP对网络爬虫的帮助关键,大家都有了认识,找代理IP时要找高.

    2022年4月13日
    171
  • 实践的意义——写给图像处理算法爱好者的建议[通俗易懂]

    实践的意义——写给图像处理算法爱好者的建议[通俗易懂]一些我学习数字图像处理中的心得和建议,欢迎有兴趣的朋友共同参与讨论。工欲善其事,必先利其器。有时一些方法论之类的东西往往能让你少走很多弯路

    2022年5月16日
    37

发表回复

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

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