使用php curl的Web Scrape

时间:2014-09-08 03:51:14

标签: php html json curl web-scraping

我有一个html页面,其中包含以下代码。现在我想以json格式在本地页面中仅打印名称和位置。

<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-210098160524748093'   itemprop='articleBody'>
<div class="separator" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;">
<br /></div>


<br />
<br />
<ul>
<li>Name<br />Location</li>
<li>Name<br />location</li>
<li>name<br />location</li>
<li>name<br />location</li>
</ul>
<br />

输出应该是这样的,任何建议都会有所帮助。

{
"contacts": [
    {
            "id": "1",
            "name": "Name",
            "location":"location"
    },
    {
            "id": "2",
            "name": "Name",
            "location":"location"
    }
]
}

2 个答案:

答案 0 :(得分:0)

您可以获取<li></li>元素的内容,按<br />拆分,然后使用jQuery生成JSON,然后使用jQuery POST请求方法将其传递给PHP: / p>

$().ready(function() {
    var storeLocations = new Array();
    var storeName = new Array();

    $("li").each(function() {
        var content = $(this).text().split('<br />');
        storeName[storeName.length] = content[0];
        storeLocation[storeLocation.length] = content[1];
    });

    var jsonString = '{["contacts:["';

    for(var i = 0; i < storeLocations.length; i++) {
        jsonString += '{"id:' + i + ', "name:"' + storeName[i] + '", "location:"' + storeLocation[i] + '"},';
    }

    jsonString += "]]}";
    var url = "form.php";

    $.post(url, jsonString);
});

http://api.jquery.com/jquery.post/

答案 1 :(得分:0)

另一种方法是使用正则表达式

21:34:00

这里是 regex101:

https://regex101.com/r/0Hx6qD/1