gpt4 book ai didi

javascript - 使用 RegEx 查找 HTML 标签之间的内容

转载 作者:行者123 更新时间:2023-12-03 07:32:19 25 4
gpt4 key购买 nike

我想提取属性名为 itemprop 的页面内容。假设我的页面具有不同的 HTML 标签,这些标签具有名为 itemprop 的属性,因此我希望在这些标签之间添加文本,

对于标题:

<h1 itemprop="name" class="h2">Whirlpool Direct Drive Washer Motor Coupling</h1>

来自 td 标签的表格数据:

<td itemprop="productID">AP3963893</td>

这里 itemprop 属性是通用的。因此,我需要使用 regexp 在 Whirlpool Direct Drive Washer Motor CouplingAP3963893 等标签之间提供数据。

下面是我的代码(目前不起作用)

preg_match_all(
'/<div class=\"pdct\-inf\">(.*?)<\/div>/s',
$producturl,
$posts
);

我的代码:

<?php
define('CSV_PATH','csvfiles/');
$csv_file = CSV_PATH . "producturl.csv"; // Name of your producturl file
$csvfile = fopen($csv_file, 'r');
$csv_fileoutput = CSV_PATH . "productscraping.csv"; // Name of your product page data file
$csvfileoutput = fopen($csv_fileoutput, 'a');

$websitename = "http://www.appliancepartspros.com";

while($data = fgetcsv($csvfile))
{
$producturl = $websitename . trim($data[1]);

preg_match_all(
'/<.*itemprop=\".*\".*>(.*?)<\/.*>/s',
$producturl,
$posts
);
print_r($posts);
}

最佳答案

首先,never ever use RegEx to parse HTML 。其次,您可以使用 jQuery 非常简单地使用属性选择器来实现此目的:

var nameItemprop = $('[itemprop="name"]').text(); // = 'Whirlpool Direct Drive Washer Motor Coupling'
var productIdItemprop = $('[itemprop="productID"]').text(); // = 'AP3963893'

但请注意,创建您自己的非标准属性是无效的 HTML。理想情况下,您应该使用 data-* 属性来包含与这些元素关联的数据:

<h1 data-itemprop="name" class="h2">Whirlpool Direct Drive Washer Motor Coupling</h1>
<td data-itemprop="productID">AP3963893</td>
var nameItemprop = $('[data-itemprop="name"]').text();
var productIdItemprop = $('[data-itemprop="productID"]').text();

最后,如果有多个元素具有相同的 itemprop 属性,那么您需要循环遍历它们以从每个元素获取值。

关于javascript - 使用 RegEx 查找 HTML 标签之间的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com