Php 如何从网页中提取文本数据?
好的,我有以下函数来获取我需要的网页:Php 如何从网页中提取文本数据?,php,dom,curl,xpath,web-scraping,Php,Dom,Curl,Xpath,Web Scraping,好的,我有以下函数来获取我需要的网页: function login2($url2) { $fp = fopen("cookie.txt", "w"); fclose($fp); $login2 = curl_init(); curl_setopt($login2, CURLOPT_COOKIEJAR, "cookies.txt"); curl_setopt($login2, CURLOPT_COOKIEFILE, "cookies.txt"); curl_s
function login2($url2) {
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login2 = curl_init();
curl_setopt($login2, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($login2, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($login2, CURLOPT_TIMEOUT, 40000);
curl_setopt($login2, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login2, CURLOPT_URL, $url2);
curl_setopt($login2, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login2, CURLOPT_FOLLOWLOCATION, false);
[...]
然后,我发出此命令以使用该函数:
echo login2("https://example.com/clue/holes.aspx");
这会回显我请求的页面,但我只希望它回显来自HTML源的特定数据段。以下是具体的标记:
<h4>
<label id="cooling percent" for="symbol">*</label>
4.50
</h4>
*
4.50
我想要的唯一一条信息是这个图,在这个具体的例子中是4.50
那么,我如何才能做到这一点,让我的cURL抓取并回显它,而不是回显整个页面呢?您可以使用XPath解决这个问题:
$html = login2('https://example.com/clue/holes.aspx');
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$value = $xpath->query('//label[@id="ctl00_ctl00_PageContainer_MyAccountContainer_symPound"]/following-sibling::text()')->item(0)->nodeValue;
echo $value;
你可以用XPath解决这个问题,但我需要你提供更多的HTML代码。bwoebi我喜欢我很久以前使用dom解析器的想法,但我一辈子都记不清该怎么做。你能帮我找到你需要的确切代码吗?例如,
id
不能包含空格:id=“cooling percent”
,这就是它在网页上出现的方式吗?这是一个真实的例子