假设我发现一个网站有以下标记:
<body>
<div id="paper">
<div id="contentwrapper">
<div id="rightcontent">
<h1>1967-002A</h1>
<p>
<strong>NSSDCA/COSPAR ID:</strong> 1967-002A</p>
<div class="twocol">
<div class="urone">
<h2>Description</h2>
<p>
This US Air Force photo surveillance satellite was launched from Vandenberg AFB aboard a Thor Agena D rocket. It was a KH-4A (Key Hole-4A) type satellite. The satellite had fair image quality.
</p>
</div>
<div class="urtwo">
<h2>Alternate Names</h2>
<ul>
<li>02642</li>
</ul>
<h2>Facts in Brief</h2>
<p>
<strong>Launch Date:</strong> 1967-01-14
<br/>
<strong>Launch Vehicle:</strong> Thor
<br/>
<strong>Launch Site:</strong> Vandenberg AFB, United States
<br/>
<strong>Mass:</strong> 1500.0 kg
<br/>
</p>
<h2>Funding Agency</h2>
<ul>
<li>Department of Defense-Department of the Air Force (United States)</li>
</ul>
<h2>Discipline</h2>
<ul>
<li>Surveillance and Other Military</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</body>
&#13;
这包含信息,例如说明,发布日期,运载火箭,发射场地和质量,资助机构和纪律。 - 这些都可能是mySQL数据库中的列。
该网页的链接为/spacecraftDisplay.do?id=1967-002A
。我已经有了一个带有1967-002A
的数据库 - 航天器标识符。所以我猜测从我的数据库中获取每个标识符并使用相同的标识符保存URL中的数据。每个网页都是相同的
我已经知道如何使用Guzzle从具有JSON格式的外部API保存数据。我们正在处理外部网站的HTML,而不是JSON。
首先我想知道的是,是否可以从网页上保存这些数据,或者您可以做什么限制?
答案 0 :(得分:1)
您可以使用DOM解析器http://simplehtmldom.sourceforge.net/
它基本上将整个HTML页面粘贴在对象中,然后您可以访问该对象中的任何元素。
//Example
$html = file_get_html('http://www.google.com/');
foreach($html->find('img') as $element) {
echo $element->src . '<br>';
}