php爬虫最最最最简单教程
php爬虫最最最最简单教程
一、总结
一句话总结:用的爬虫框架,却是用的自己的例子(因为网站结构的变化,作者的例子不一定好用)
爬虫框架 自己例子
1、发现自己的运行效果和作者的不一样怎么办?
耐下性子快速阅读全部文档
作者的文档很有可能是之前写的,不一样正常,但是看文档的时候尽量全部文档都看一下,否则只看前面几个因为各种原因(比如例子年久失修)例子可能运行不出来
二、爬虫使用流程
1、下载爬虫框架
owner888/phpspider: 《我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言 》所使用的程序
https://github.com/owner888/phpspider

2700+Star,用用不亏
我下载的发布版2.1.6

点开

下载好的

然后解压
2、配置php环境(非必须,为了方便)
在电脑的系统环境变量配置里面,在path变量里面添加了一条php,可以发现我的php版本是7.0.12
不会配置电脑系统变量的自己百度去,和配置java的jdk类似

3、用我的例子(例子的功能是获取博客园里面文章的标题)
在demo文件夹下新建一个名为firstDemo_2.php的php文件

如下

文件里面的代码如下:例子的功能是获取博客园里面文章的标题
<?php
// composer下载方式
// 先使用composer命令下载:
// composer require owner888/phpspider
// 引入加载器
//require './vendor/autoload.php'; // GitHub下载方式
require_once __DIR__ . '/../autoloader.php';
use phpspider\core\phpspider; /* Do NOT delete this comment */
/* 不要删除这段注释 */ $configs = array(
'name' => '博客园',
'log_show' => false,
'domains' => array(
'www.cnblogs.com'
),
'scan_urls' => array(
'https://www.cnblogs.com/Renyi-Fan/p/10570492.html'
),
'fields' => array(
// 抽取内容页的文章标题
array(
'name' => "article_title",
'selector' => "//*[@id=\"cb_post_title_url\"]",
'required' => true
)
),
'export' => array(
'type' => 'sql',
'file' => './data/cnblog_fry.sql',
'table' => '数据表',
), ); $spider = new phpspider($configs);
$spider->start();
具体代码什么意思看官方文档:地址如下:
概述 · phpspider开发文档
https://doc.phpspider.org/
4、具体运行例子过程
在刚刚下载好的phpspider-2.1.6\demo的文件夹下打开命令行
运行:php -f firstDemo_2.php

运行效果:

5、运行的结果
在如下路径下打开cnblog_fry.sql即可查看爬虫效果

效果如下:

php爬虫最最最最简单教程的更多相关文章
- echarts怎么使用(最最最最简单版)(本质canvas)
echarts怎么使用(最最最最简单版)(本质canvas) 一.总结 一句话总结:外部扩展插件肯定要写js啊,不然数据怎么进去,不然宽高怎么设置.本质都是canvas嵌套在页面上,比如div中. 1 ...
- 其它课程中的python---4、Matplotlib最最最最简单使用
其它课程中的python---4.Matplotlib最最最最简单使用 一.总结 一句话总结: 慢慢来吧,不着急,心态平和和沉稳:每次和世界交互,你就能感受到无比的自信 1.如何区别python2和p ...
- vue双向数据绑定最最最最最简单直观的例子
vue双向数据绑定最最最最最简单直观的例子 一.总结 一句话总结:双向绑定既不仅model可以影响view的数据,view也可以影响model的数据 view model 数据 1.vue双向数据绑定 ...
- ThinkPHP5.0最最最最最简单实例
ThinkPHP5.0最最最最最简单实例 一.效果图 二.操作步骤 1.用mysql数据库建立数据库 2.按照ThinkPHP官网的指示装好ThinkPHP5.0 tp5里面的目录结构如下: 3.配置 ...
- vue.js最最最最简单实例
vue.js最最最最简单实例 一.总结 一句话总结: 1.vue.js实现实现数据的双向绑定用的是什么标记? 双大括号:比如{{message}} 2.vue数据循环输出的标记是什么? 用的是标签的v ...
- thinkphp5最最最最简单的ajax实例
thinkphp5最最最最简单的ajax实例 一.总结 一句话总结:页面端使用$.get()方法传递ajax请求,服务器端判断是不是ajax请求,是的话接受参数,进行逻辑处理之后向客户端返回值. 1. ...
- python从入门到大神---4、python3文件操作最最最最简单实例
python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...
- 让你从零开始学会写爬虫的5个教程(Python)
写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚本是很简单的,但是对于新手来说却并不是那么容易. ...
- [转]让你从零开始学会写爬虫的5个教程(Python)
让你从零开始学会写爬虫的5个教程(Python) 写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个 ...
随机推荐
- spring boot 结合Redis 实现工具类
自己整理了 spring boot 结合 Redis 的工具类引入依赖 <dependency> <groupId>org.springframework.boot</g ...
- replace 将逗号替换~
var reg = new RegExp(",","g"); //"g"表示全局替换var aa="qq,ww";aa= ...
- topcoder srm 390 div1
problem1 link 记录一个模$k$之后的值是否出现过,出现过则出现循环,无解:否则最多$k$ 次一定能出现0. import java.util.*; import java.math.*; ...
- Bootstrap3基础 form-inline 输入框在同一行
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- luogu P2486 [SDOI2011]染色
树剖做法: 就是两个dfs+一个线段树 难度的取决基本==线段树的维护难度 所以对有点线段树基础的,树剖也不难做吧 这里操作有二 一:两点间路径染色 线段树的区间赋值操作 二:查询路径段的个数 考虑线 ...
- CodeForces 459C Pashmak and Buses(构造)题解
题意:n个人,k辆车,要求d天内任意两人都不能一直在同一辆车,能做到给出构造,不能输出-1 思路:我们把某一个人这d天的车号看成一个d位的数字,比如 1 1 2 3代表第一天1号车.第二天1号车.第三 ...
- Web、OAuth2/SSO相关拾遗
OAuth2认证相关:(SSO资源访问流程也应类似设计,它与OAuth2第三方认证.授权不同,是同一个应用系统间的认证.授权过程,且需要实现一个点授权,可访问所有点,一个点退出,收回所有点授权,且有时 ...
- Java基础 【类之间的关系】
在Java与其他面向对象设计语言中,类之间常见的关系有6种 分别是: 依赖.关联.聚合.组合.继承.实现,他们的耦合度依次增强. 其中,关联.聚合.组合关系仅仅是在语义上有所区别,所谓语义就是指上下 ...
- Shiro学习笔记 三(认证授权)
第一种首先基于角色的权限控制 1.由于不断的创建SecurityFactory工程等步骤重复多次,所以应该将这些步骤封装成一个工具类 还是首先看一下目录结构 主要用到文件 首先贴一下工具类的方法 pa ...
- 【C#】神奇的yeild
直接出栗子: class Program { static void Main(string[] args) { foreach (var item in FilterWithoutYield) { ...