php curl抓取网页指定内容(如何利用正则匹配从网站的页面中提取我们想要的招聘信息)
优采云 发布时间: 2021-09-21 11:26php curl抓取网页指定内容(如何利用正则匹配从网站的页面中提取我们想要的招聘信息)
在web开发中,我们有时需要从其他web页面的内容中提取所需的信息。为了获取页面信息,我们需要使用curl方法,但是为了从捕获的信息中提取我们真正需要的内容,我们需要使用正则表达式进行匹配
在这里,我将简要介绍如何使用常规匹配从网站页面提取我们想要的招聘信息,分为以下步骤:
1、分析我们想要捕获内容的网页的URL组成
2、根据实际情况拼接我们需要的URL
3、阅读网页内容
4、根据返回的内容,我们使用常规匹配来匹配我们需要的内容
步骤1:分析URL组成:
在网站的“搜索职位”页面上,选择工作地点和职位并搜索
发现URL的组成如下:
%E7%BB%B5%E9%98%B3&;kw=爪哇岛&;sm=0&;p=1
其中:
Ji参数的值为工作位置:此处显示的值“%E7%BB%B5%E9%98%B3”未被篡改;这是使用URLEncode进行中文编码的结果。我们也可以直接说出代码,比如Ji=绵阳
kW参数的值为位置
p参数是页码
步骤2现在,让我们构建要访问的URL:
步骤3使用文件获取内容函数获取网站内容:
现在您需要使用Google browser的调试工具来观察这部分的HTML结构,以便编写相应的正则表达式:
此部分的HTML结构为:
步骤4:使用正则表达式匹配所需内容:
首先,将此部分的值与正则表达式匹配。参考上述HTML结构,构造的正则表达式(这里我们使用更高效的PCRE模式)是:
我们使用匹配函数preg_uu匹配所有:
通过以上匹配,您可以将匹配的内容放入$arr数组中,返回的内容如下:
继续使用正则表达式来匹配我们需要的内容,但是以前构建的URL中的页码值是1,因此我们需要匹配所有页面,因此我们需要修改以前的URL,并且我们需要使用循环,但是我们应该使用什么循环结构呢?我们首先需要观察页面中“下一页”按钮的HTML结构:
我们可以匹配上图中标记a中的类名“nopress2”,以确定是否存在下一页。如果我们可以匹配此值,则表示没有下一页。因此,我们使用do。。。而循环结构,以获取所有页面内容。代码修改如下:
当匹配“nopress2”时,while条件不再满足,循环停止
1、根据以下HTML结构,在相应的a标记中查找位置名称和URL
在这里,使用foreach遍历我们刚刚得到的数组$arr,并添加代码来执行。。。而:
2找到公司名称和相应的URL,并继续在foreach中添加代码
三,。匹配配置职位的月薪、工作地点、释放时间,继续添加代码
经过上述处理后,您将最终得到以下形式的数组:
到目前为止,我们已经获得了我们想要提取的数据
完整代码:
这个文章只提供了一个通用的方法来抓取我们想要的网页内容。中间的一些步骤和代码仍然可以优化,还有一些不足之处。欢迎大家共同探讨。毕竟,在编程中,没有最好的代码,只有更好的想法