Php 在网页内刮表?
我目前正在尝试从网页中的一个表中获取所有结果。目前,我正在尝试使用Php 在网页内刮表?,php,jquery,dom,web-scraping,file-get-contents,Php,Jquery,Dom,Web Scraping,File Get Contents,我目前正在尝试从网页中的一个表中获取所有结果。目前,我正在尝试使用file\u get\u contents()和一些jquery,但我似乎无法使用jquery在DOM中找到选择器 <pre> <script src="<?php echo base_url() ?>js/scrape.js"></script> <?php print_r($stats); ?> </pre> 我正试图一行一行地获取它们,因为我打算
file\u get\u contents()
和一些jquery,但我似乎无法使用jquery在DOM
中找到选择器
<pre>
<script src="<?php echo base_url() ?>js/scrape.js"></script>
<?php print_r($stats); ?>
</pre>
我正试图一行一行地获取它们,因为我打算将它们插入我的数据库以备将来使用
我的问题是如何获取网页表中每个
中每个
的值,以便将所有这些值插入我的数据库
PHP:
控制器
function scqf_stats(){
$data['stats'] = file_get_contents("http://www.scqf.org.uk/Search%20The%20Database?ssub=&stit=Enter+a+title+or+a+part+of+it&sown=Start+typing+and+select+from+dropdown&sownid=&slev=&scrb=&sk=&submitsp=Search");
$data['main_content'] = 'alt_test';
$this->load->view('templates/single_view', $data);
}
查看
假设您在
id=search database results
的元素中有一个刮取的页面,则应该这样做,以查找表中每个TR中的所有TDs(按顺序):
如果您需要更多/不同,请详细解释。id搜索数据库结果在哪里?这就是您要导入的表的名称吗?您需要显示一个HTML示例,因为您的代码中“TR”内有“TR”(这是不正确的)。i、 e.
.children('tr')。children('tr')
$('#搜索数据库结果tr td')。每个(函数(){…})
应该足以在ID=search database results
元素中找到所有tr中的所有TDs。@Chitowns24是搜索数据库结果
是table@TrueBlueAussie很抱歉,这是t正文
的第一个正文。刮取的页面不在id=“搜索数据库结果”中
但是table元素在
中,只是为了确认这也是跨域的。看来函数scrape\u it()
根本没有启动1。只要id=“search database results”位于其上方,它对选择器就无所谓。2.跨域页面HTML请求可能会失败,因此您可能需要通过服务器对其进行包装。3.你能把一个样本放在JSFIDLE中吗?我刚刚使用了CURL
,做了同样的工作。谢谢你的帮助
$(document).ready(function() {
function scrape_it(){
$('#search-database-results').children('tbody').children('tr').each(function (){
$this = $(this);
$('tr').children('td').each(function() {
var text = $('td').text();
console.log(text);
});
});
}
scrape_it();
});
$(document).ready(function() {
function scrape_it(){
$('#search-database-results tr td').each(function() {
var text = $(this).text();
console.log(text);
});
}
scrape_it();
});