如何使用php从其他网站获取数据?

时间:2018-10-19 19:02:35

标签: php web-scraping

这是我在此网站上的第一个问题,如果不清楚的话,抱歉。

所以我的问题是,我想从没有API的网上商店获取所有产品ID。 产品ID如下:xy-000000

我知道我需要一个网络抓取程序,但是问题是我不知道如何用它来查找xy- 000000这样的特定单词。我尝试了许多网络爬虫,但是我唯一能找到的就是诸如标题或关键字之类的html标签。

我在Google上进行了大量搜索,发现一些网页抓取工具,但它们对我来说效果不佳。

正如我提到的那样,我想使用php从其他网上商店获取所有产品ID,以查找一些我不销售的产品。 (我的网上商店的商品ID彼此相同。)

任何人都可以帮我找到一个与我需要的PHP脚本相似的脚本吗?

这是我要使用的代码:

 <?php
    $data = file_get_contents('https://www.mesemix.hu/hu/superman-ruhanemuk/11292-szuperhosoek-mintas-zokni.html');

    error_reporting(0);

    preg_match('/<title>([^<]+)<\/title>/i', $data, $matches);
    $title = $matches[1];

    preg_match('/[0-9]{6}/', $data, $matches);
    $number = $matches[1];

    preg_match('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $data, $matches);
    $img = $matches[1];

    echo $title."<br>\n";
    echo $img."<br>\n";
    echo $number;
    echo $data;
    ?>

问题是我找不到6位数字。 ($ number)

在网上商店的源代码中,它看起来像这样:

var productReference ='SP- 418070';

如果我的问题有任何问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

您要查找的字词是“网络抓取工具”

您可以通过几种不同的方式来实现。

这两个PHP库之一

http://simplehtmldom.sourceforge.net/

https://github.com/FriendsOfPHP/Goutte

两者都很容易使用,两者都有文档

它们的工作方式就像jQuery(javascript)一样,将需要通过CSS选择器获取的数据作为目标