(phpQuery)对网站产品信息采集代码的优化

a.要采集的源链接:

http://www.prospecbio.com/Recombinant_Proteins/

b.具体要求:

接下来就是采集代码的编写。

对于:b-(1)中,代码如下:

<?php
header(‘Content-Type:text/html;charset=UTF-8‘);
include ‘./phpQuery/phpQuery.php‘;
set_time_limit(10000);

$url = "http://www.prospecbio.com/Hormones/";
echo "当前的URL:";
echo $url."<br/>";
phpQuery::newDocumentFile($url);
$artList = pq(".Body");
// var_dump($artList);
$li = ‘‘;
foreach($artList as $li){
    $path = ‘‘;
    $head = ‘‘;
    $head = ‘http://www.prospecbio.com‘;
    $tr = ‘‘;
    $tr = pq($li)->eq(0)->find("table")->eq(0)->find("tr")->eq(0)->find("td")->eq(0)->find("a")->eq(0)->attr(‘href‘);
    $tr = trim($tr);

    if($tr != ‘‘){
    $path = $head.$tr;
    // var_dump($path);
    $path .= "\r\n";
    file_put_contents(‘Url.txt‘,$path,FILE_APPEND);
    }

    // exit;

}

?>

对于:b-(2)中代码如下:

<?php
header(‘Content-Type:text/html;charset=UTF-8‘);
include ‘./phpQuery/phpQuery.php‘;
set_time_limit(10000);
$id = isset($_GET[‘id‘]) ? intval($_GET[‘id‘]) : 1;

if($id > 14){
   echo "finish!";
   exit;
}
echo "当前 id=".$id;
echo "<br/>";

$conn = mysql_connect ( "localhost", "root", "root" ) or die ( "连接服务器失败 !!!" );
$db = mysql_select_db ( "prospect" ) or die ( "选择数据库失败 !!!" );
// var_dump($conn,$db);
$url = ‘‘;
$sql = ‘‘;
$sql = ‘select url from url_a where id =‘.$id;
echo "当前sql :".$sql;
echo ‘<br/>‘;
$query = mysql_query($sql);
$res = mysql_fetch_assoc($query);
$url = trim($res[‘url‘]);
echo "当前的url:".$url;
echo ‘<br/>‘;

phpQuery::newDocumentFile($url);

$artList = pq(".Body");
// var_dump($artList);
$li = ‘‘;
foreach($artList as $k => $li){

$tr = ‘‘;
$tr = pq($li)->eq(0)->find(‘table‘)->eq(0)->find(‘tr‘)->eq(1)->find(‘td‘)->eq(0)->find(‘a‘)->attr(‘href‘);
$tr = trim($tr);

if($tr !== ‘‘ and $k > 0){

    $head = ‘‘;
    $head = ‘http://www.prospecbio.com‘;

    $path = ‘‘;
    $tr = ltrim($tr,".");
    $path = $head.$tr."\r\n";

    var_dump($path);
    echo ‘<br/>‘;

    file_put_contents(‘Url_a.txt‘,$path,FILE_APPEND);

}

}

mysql_close($conn);
unset($artList);

?>
<script>
function JumpUrl(){
    location.href=‘?id=<?php echo ($id+1);?>‘;
}
setTimeout(‘JumpUrl()‘,0);
</script>

对于:b-(3)中,代码如下:

<?php
header(‘Content-Type:text/html;charset=gb2312‘);
include ‘./phpQuery/phpQuery.php‘;
set_time_limit(100000);
// $id = isset($_GET[‘id‘]) ? intval($_GET[‘id‘]) : 1290;
// $id = isset($_GET[‘id‘]) ? intval($_GET[‘id‘]) : 2;
$id = isset($_GET[‘id‘]) ? intval($_GET[‘id‘]) : 1;

if($id > 63){
   echo "finish!";
   exit;
}
echo "当前 id=".$id;
echo "<br/>";

$conn = mysql_connect ( "localhost", "root", "root" ) or die ( "连接服务器失败 !!!" );
$db = mysql_select_db ( "prospect" ) or die ( "选择数据库失败 !!!" );
// var_dump($conn,$db);
$url = ‘‘;
$sql = ‘‘;
$sql = ‘select url from url_b where id =‘.$id;
echo "当前sql :".$sql;
echo ‘<br/>‘;
$query = mysql_query($sql);

$res = mysql_fetch_assoc($query);
$url = trim($res[‘url‘]);
echo "当前的url:".$url;
echo ‘<br/>‘;
//$url_wh = "http://www.prospecbio.com/CAPN2_10_455/";
phpQuery::newDocumentFile($url);
//phpQuery::newDocumentFile($url_wh);
$arr = array();  ###用于装载产品信息
$arr[‘product_url‘] = ‘‘;
$arr[‘product_url‘] = $url;

### Product Name
$product_name = ‘‘;
$product_name = pq(‘#PageHeader‘)->eq(0)->find(‘span‘)->eq(0)->html();
// var_dump($a);
$product_name = trim($product_name);
echo "产品名称:";
var_dump($product_name);

$arr[‘product_name‘] = ‘‘;
$arr[‘product_name‘] = $product_name;
echo ‘<br/>‘;

#### price
$price = ‘‘;
$price_1 = ‘‘;
$price_2 = ‘‘;
$price_3 = ‘‘;

$price_1 = pq(‘.ProductsColumnPrice‘)->find(‘table‘)->eq(0)->find(‘tr‘)->eq(0)->find(‘td‘)->eq(1)->find(‘label‘)->eq(0)->html();
$price_1 = trim($price_1);
iconv(‘utf-8‘,‘gbk‘,$price_1);

$price_2 = pq(‘.ProductsColumnPrice‘)->find(‘table‘)->eq(0)->find(‘tr‘)->eq(1)->find(‘td‘)->eq(1)->find(‘label‘)->eq(0)->html();
$price_2 = trim($price_2);
iconv(‘utf-8‘,‘gbk‘,$price_2);

$price_3 = pq(‘.ProductsColumnPrice‘)->find(‘table‘)->eq(0)->find(‘tr‘)->eq(2)->find(‘td‘)->eq(1)->find(‘label‘)->eq(0)->html();
$price_3 = trim($price_3);
iconv(‘utf-8‘,‘gbk‘,$price_3);

$price = $price_1."/".$price_2."/".$price_3;

iconv(‘utf-8‘,‘gbk‘,$price);

echo "产品价格:";
var_dump($price);
$arr[‘price‘] = ‘‘;
$arr[‘price‘] = $price;
echo ‘<br/>‘;

########## Catalogue Number
$cata_num = ‘‘;
$cata_num = pq(‘.ItemRowLastCellStyle‘)->eq(0)->html();
$cata_num = trim($cata_num);
echo "产品 Catalogue Number:";
var_dump($cata_num);

$arr[‘cata_num‘] = ‘‘;
$arr[‘cata_num‘] = $cata_num;
echo ‘<br/>‘;

############ Source
$source = ‘‘;
$appearance = ‘‘;
$formulation = ‘‘;
$stability = ‘‘;
$purity = ‘‘;
$amino_acid = ‘‘;

$solubility = ‘‘;
$bio_activity = ‘‘;

$artlist = ‘‘;
$artlist = pq(‘.ItemRowFirstCellStyle‘);

$arr[‘source‘] = ‘‘;
$arr[‘appearance‘] = ‘‘;
$arr[‘formulation‘] = ‘‘;
$arr[‘stability‘] = ‘‘;
$arr[‘solubility‘] = ‘‘;
$arr[‘purity‘] = ‘‘;
$arr[‘amino_acid‘] = ‘‘;
$arr[‘bio_activity‘] = ‘‘;

foreach($artlist as $k => $li){
    $tr_1 = ‘‘;

    $tr_1 = pq($li)->eq(0)->find(‘span‘)->eq(0)->html();
    $tr_1 = trim($tr_1);

    if($tr_1 == "Source"){

     $source = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $source = trim($source);
     $source = strip_tags($source);
     $source = iconv(‘utf-8‘,‘gbk‘,$source);
     echo "产品 Source:";
     var_dump($source);

     $arr[‘source‘] = $source;
     echo ‘<br/>‘;
     // var_dump($k,$tr_1,$source);
    }

    if($tr_1 == "Physical Appearance"){
     $appearance = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $appearance = trim($appearance);
     $appearance = strip_tags($appearance);
     $appearance = iconv(‘utf-8‘,‘gbk‘,$appearance);
     echo "产品 Physical Appearance:";
     var_dump($appearance);

     $arr[‘appearance‘] = $appearance;
     echo ‘<br/>‘;
    }

    if($tr_1 == "Formulation"){
     $formulation = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $formulation = trim($formulation);
     $formulation = strip_tags($formulation);
     $formulation = iconv(‘utf-8‘,‘gbk‘,$formulation);
     echo "产品 Formulation:";
     var_dump($formulation);

     $arr[‘formulation‘] = $formulation;
     echo ‘<br/>‘;
    }

    if($tr_1 == "Stability"){
     $stability = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $stability = trim($stability);
     $stability = strip_tags($stability);
     $stability = iconv(‘utf-8‘,‘gbk‘,$stability);
     echo "产品 Stability:";
     var_dump($stability);

     $arr[‘stability‘] = $stability;
     echo ‘<br/>‘;
    }

    if($tr_1 == "Purity"){
     $purity = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $purity = trim($purity);
     $purity = strip_tags($purity);
     $purity = iconv(‘utf-8‘,‘gbk‘,$purity);
     echo "产品 Purity:";
     var_dump($purity);

     $arr[‘purity‘] = $purity;
     echo ‘<br/>‘;
    }

    if($tr_1 == "Amino acid sequence" || $tr_1 == "Amino Acid Sequence"){
     $amino_acid = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $amino_acid = trim($amino_acid);
     $amino_acid = strip_tags($amino_acid);
     $amino_acid = iconv(‘utf-8‘,‘gbk‘,$amino_acid);
     echo "产品 Amino acid sequence:";
     var_dump($amino_acid);

     $arr[‘amino_acid‘] = $amino_acid;
     echo ‘<br/>‘;
    }

    if($tr_1 == "Solubility"){
     $solubility = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $solubility = trim($solubility);
     $solubility = strip_tags($solubility);
     $solubility = iconv(‘utf-8‘,‘gbk‘,$solubility);
     echo "产品 Solubility :";
     var_dump($solubility);

     $arr[‘solubility‘] = $solubility;
     echo ‘<br/>‘;
    }

    if($tr_1 == "Biological Activity"){
     $bio_activity = pq(‘.ItemRowLastCellStyle‘)->eq($k)->find(‘span‘)->eq(0)->html();
     $bio_activity = trim($bio_activity);
     $bio_activity = strip_tags($bio_activity);
     $bio_activity = iconv(‘utf-8‘,‘gbk‘,$bio_activity);
     echo "产品 Biological Activity:";
     var_dump($bio_activity);

     $arr[‘bio_activity‘] = $bio_activity;
     echo ‘<br/>‘;
    }

   // var_dump($tr_1);

    echo ‘<br/>‘;
}

 # 写入文件
$handle = fopen(‘Neurotrophins.csv‘,‘a‘);
fputcsv($handle,$arr);
fclose($handle);

mysql_close($conn);
unset($artlist);
unset($arr);
?>

<script>
function JumpUrl(){
   location.href=‘?id=<?php echo ($id+1);?>‘;
}
setTimeout(JumpUrl,0);
</script>

说明,此次采集对phpQuery方法采集数据做了局部的优化,使我对此方法有了更搞的认识。好方法是成功的一半。

同时也有部分不足,毕竟该采集方法是针对源码的代码处理,采集代码根据页面的排版决定的,所以并不是通用型,

这在以后的学习工程中,还要继续优化和完善。学无止境,加油!

时间: 2024-11-01 18:05:07

(phpQuery)对网站产品信息采集代码的优化的相关文章

大型php网站性能和并发访问优化方案

网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎么进行整体性能优化呢?本文为你提供一份大型php网站性能和并发访问优化方案. 一.大型网站性能提高策略: 大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器.高性能的数据库.高效率的编程语言.还有高性能的Web容器.这几个解决思路在一定程度上意味着更大的投入.

销售型网站还要不要做SEO优化

SEO的操作难度越来越大,优化的成本也越来越高,加上新媒体营销被热捧,站在公司领导角度,具体网站要不要做seo优化,是需要认真认真权衡下.那么本文家世比seo夜无影拿销售型网站来说说做seo优化的抉择. 首先我们试想下,一个销售型的网站,用户可能会通过哪些方式找到我们的? 1.百度搜索品牌关键词进入: 2.搜索除品牌关键词外的其他关键词进入: 3.通过百度竞价方式进入: 4.网站网址在QQ群.微信群里推广: 5.通过自媒体文章.微博等社会化媒体文章引导进入: 6.用户推荐.口碑传播. 以上者6种

企业网站之站内SEO优化要做哪些事?

这个话题在SEO优化者中是个常常说到的话题.我说正常的网站是说这个网站的空间稳定,网站相对安全,以及有良好的后台的管理体系.给予这个基础之上的企业网站的站内搜索优化. 从我自身的实操角度来简单谈谈企业站点的网站优化.从网站的内部的标题.网站描述.站内文章新闻,图片处理等方面给你一一解说网站针对搜索引擎做的内部优化. 首先说说网站标题上.常常看到的是很多很简单的网站的标题描述往往要比长的同行网站的标题更具优势,排名更靠前.不妨细细的观察下,哪些长长的标题的网站,上面几乎把所有的产品以及介绍都罗列出

网站跳出率高的优化方案

本文给大家分享一个网站跳出率高的优化的实例,每个用户都会向我们提供重要的SEO数据,我们可以通过百度站长平台和网站后台,分析筛选出这些用户数据,就可以知道是什么原因导致了网站跳出率高的问题!当一个用户点击网站页面,没有点击任何连接,那网站的跳出率就是百分之百.通过页面优化,降低了页面跳出率,也就提升了页面质量.我们通过某个精油网站的案例来分析 我们找到一个<护发精油的使用方法>的页面,看看这个页面是如何降低跳出率的.主要有两点: 1 .内容质量要很好. 内容要从用户角度出发,解决用户的问题.如

【转】加快网站访问速度——Yslow极限优化

Yslow是一套雅虎的网页评分系统,详细的列出了各项影响网页载入速度的参数,这里不做多说. 我之前就一直参考Yslow做博客优化,经过长时间的学习也算是有所收获,小博的YslowV2分数达到了94分(偶耶!),如果换用博客类小网站评分标准更是可以达到满分. 下面我就总结几点大家力所能及优化方法,分享给各位. 下面贴一下小博全新刷新的载入图,下面文章中用得到: 我认为网页优化主要分为两类,个人称之为软优化与硬优化.软优化主要包括:服务器缓存类与浏览器本地缓存类,这些优化主要是参数设置上的改动.而硬

根据网站所做的SEO优化整理的一份文档

今日给合作公司讲解本公司网站SEO优化整理的一份简单文档 架构 ########################################## 1.尽量避免Javascript和flash导航. 虽然JS和FLASH能把网站做的绚丽漂亮,但目前搜索引擎还是无法顺利的抓取其中的内容,所以我们要避免. 2.目录层次不能太深. 网站目录尽量保持在三层以内,尽可能接近根网址,比如“www.xxx.com/产品目录/产品名称”明显比“www.xxx.com/产品目录/年份/月份/产品名称”要好. 3

合肥SEO网站的代码优化和图片优化

作者:合肥SEO 合肥seo优化中的网站的代码优化对页面优化的一个重要环节,也是网站优化的基础.代码优化包括:精简代码,头部优化和权重标签,图片优化.一,精简代码主要分下面几种:1)删除页面中的冗余代码和删除页面的垃圾代码,垃圾代码的删除对页面没有任何影响.精简代码可以节约空间,当然主要还是加快客户访问网站的速度,提高用户体验.2)HTML标签转换,这个主要是使用短标签替换在网页中的实现同样效果的长标签.比如用<b>代替<strong>,用<i>代替<em>

Html代码seo优化最佳布局实例讲解

搜索引擎对html代码是非常优化的,所以html的优化是做好推广的第一步.一个符合seo规则的代码大体如下界面所示. 1.<!–木庄网络博客–> 这个东西是些页面注释的,可以在这里加我的"木庄网络博客",但过多关键字可能被搜索引擎惩罚! 2.<html> 这个是代码开头 结尾时和</html>对应. 3.<head> 头标记结尾用</head> 4.<title>(木庄网络博客-勤记录 懂分享)</title

网页设计要求和页面代码精简优化

一.总体要求   1.  网页整体采用div+css代码显示,最好不要用表格,切图切的越小越好. 2.  尽量不让CSS分散在HTML标记里,尽量封装到外部调用文件. 3.  尽量缩减页面大小,一般建议100KB以下,越小越好,但不能小于5KB,最好不超过150K. 4.  尽量少用无用的图片和flash,非用不可的话图片大小控制在30K以下. GIF只限于256种颜色,适合显示质量要求不高或单一色块的图片,jpeg适合显示照片,从seo和UE来说,适合对图片按钮或网页结构上的图片使用GIF,因