php正则函数抓取网页连接(分析慕课网有哪些页面,慕课网是一个在线教育的学习网站)
优采云 发布时间: 2022-04-08 05:08php正则函数抓取网页连接(分析慕课网有哪些页面,慕课网是一个在线教育的学习网站)
下面我们来分析一下的哪些页面是在线教育学习网站,网站的结构不会很复杂,我给大家整理好了,MOOC主要由以下几类组成页数:
其他页面与我们的采集信息无关,我们暂时不用看,我们重点关注个人信息页面,可以看到个人信息页面的显示为如下:
个人信息页面
我们要采集的信息都集中在这个页面上。为了学习,我们简单采集以下字段:用户头像、用户名、用户性别、学习时间、积分、经验、关注人数、关注人数、用户url页面。我们将数据存储在 MySQL 中。首先,我们需要设计一个数据表。我使用 phpmyadmin 直接直观地创建数据表。现在我们将列出用于创建表的 SQL 语句。可以直接参考:
sql语句
正在学习的童鞋可以直接复制sql语句。接下来我们分析一下上面字段的xpath,打开谷歌浏览器,打开任意用户的个人信息,然后打开谷歌的控制台(快捷键F12),如下图:
谷歌 xpath 快捷方式教程
如上图,给出了使用谷歌浏览器快速编写Xpath节点的教程。我们将所有的 Xpath 整理如下:
路径
接下来是重头戏。下面我们来学习爬虫框架phpSpider。使用 phpSpider 不需要任何 php 知识或底层 php 是如何实现的。我们只需要一个配置文件就可以完成整个爬取过程。先附上phpSpider的文档地址,中文门户:. 使用三个步骤完成整个框架:
我们先看官网给出的简单demo:
官网演示
可以看到name是爬虫的名字,domains是要成为采集的域名,scan_urls是实际的url*敏*感*词*,content_url_regexes是目标页面的正则url,list_url_regexes是列表列的url (如果没有列表页,不需要做)配置,配置这个项目可以加快采集速度),export表示到处都是格式,这里是mysql数据库(支持直接到处csv,可以官网查看),表名为imooc,fields表示要采集字段,例如:
字段示例
name表示存储在数据库中的字段,selector表示字段的Xpath(也可以是正则的,可以看官网文档),required表示该字段是必填的,不能为空,更多的字段可以找到官网看文档,看到这里可以看到我们在写我们的MOOC爬虫,已经整理出来了,如下:
MOOC 爬行动物
嗯,快到了。我们上面做了一个流程,重写了spider的on_extract_field函数,表示当我们的字段为url时,我们将其值改为页面的url,当然记得配置下载数据库的链接地址。如果你有redis,你也应该顺便配置一下。Redis和多任务可以大大加快采集速度,1M网速,1核Cpu,1G内存,1小时可以采集10万条信息(php真的是最好的语言,呵呵)。配置数据库的文件是config/inc_config.php,打开就清楚了,如下图:
数据库配置
嗯,采集采集了10万条数据,用了将近一个小时。有兴趣的童鞋可以尝试用php来“偷”MOOC网络的信息,感受一下世界上最好的语言(默默微笑),其实我对语言没有偏见,世界上没有最好的语言,只有最适合的语言,每种语言都有它的优点,当然也有缺点。如果你真的学好一门语言,就像金庸小说里的一样,每一根草都会伤到一个人。采集 的教程就快到这里了。下次我会完善这个爬虫,挖掘一些有用的东西,比如文本分析、聚类分析、未来热门职业预测、不同城市IT发展等。学习儿童
当然,代码已经在github上开源了。有兴趣的童鞋可以发一星:
处于新手阶段,点击和关注将是更新和更高质量内容的动力。