php 网页抓取工具,PHP中的简单网页抓取

标签:php

为了明确说明,我完全同意网站管理员执行此操作,直到他们构建API.

我想要做的是,比如说,在网站的某个特定部分找到的数字或任何数据,尽管它的位置可以改变.

我希望做的一个例子,如果我通过file_get_contents将html存储在变量中,并想在源中找到“< p> User status:Online.< / p>”;我需要将文本存储在“status:”和“.< / p>”之间在变量中,只知道这两个字符串才能找到它,但也知道只有一种可能的情况,那两个文本在同一行

编辑:我似乎忘记了最重要的部分.好吧,问题是如何做我刚刚描述的内容,如果你有很多文本,我怎样才能找到一段文本和另一段文本之间的内容,并将其存储在变量中?

解决方法:

刮网站有几种方法,一种是使用CSS Selectors,另一种是使用XPath,它们都选择DOM中的元素.

由于我无法看到网页的完整HTML,因此我很难确定哪种方法更适合您.还有另一种选择可能不赞成,但在这种情况下它可能会起作用.

您可以使用Regex (regular expressions)查找字符,我不是最好的正则表达式,但这里有一些示例代码,说明它可能如何工作:

$subject = "

Some User

User status: Online.

";

$pattern = '/User status: (.*)\/';

preg_match($pattern, $subject, $matches);

print_r($matches);

?>

样本输出:

Array

(

[0] => User status: Online.

[1] => Online.

)

基本上上面的正则表达式是匹配模式,在这种情况下,它查找字符串“用户状态:”然后匹配所有字符(.*)直到结束段落标记(转义).

这里的模式只返回“在线”而没有句点,不确定所有状态是否在一段时间内结束但是这里的样子如下:

'/User status: (.*)\.\/'

标签:php

来源: https://codeday.me/bug/20190522/1153633.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值