彰化一整天的論壇

 找回密碼
 立即註冊
12
返回列表 發新帖
樓主: 張永謚

有關PHP爬蟲

[複製鏈接]
發表於 2017-4-11 13:34:16 | 顯示全部樓層
張永謚 發表於 2017-4-11 13:20
目前是這樣~~~但AS(III)卻找不到
但這個ID裡面確實有AS(III)

php的OR是用||表示.
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-4-11 14:41:43 | 顯示全部樓層
imingho 發表於 2017-4-11 13:34
php的OR是用||表示.

未命名.png
可是我看有阿~~~怎會這樣>"<那要怎解決抓這個部分的關鍵字呢?
請問有沒有解決方法.....但如果我是想要抓整個SECTION 可以嗎? 例如這個ID裡面有我要的關鍵字
就抓出整個我框起來的部分@@
不好意思麻煩~~
回復 支持 反對

使用道具 舉報

發表於 2017-4-11 15:31:55 | 顯示全部樓層
張永謚 發表於 2017-4-11 14:41
可是我看有阿~~~怎會這樣>"

我知道問題點了,這個網站要避免別人抓取網站內容,用javascript的方式去填內容,
我是用檢視原始碼,看到內容空白是正常的,您是用chrome偵錯模式,網站是已經執竹完畢.
所以我們兩個的抓圖才會不一樣,目前我沒有想到比較好的解法。
word_label_line_03.jpg

1.前面這部分是它填內容的語法

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-4-11 16:08:51 | 顯示全部樓層
imingho 發表於 2017-4-11 15:31
我知道問題點了,這個網站要避免別人抓取網站內容,用javascript的方式去填內容,
我是用檢視原始碼,看到內 ...

那如果不考慮這個地方~~
我只單純想存下有關鍵字出現的ID的整個SECTION的話 該如何寫呢@@如下圖的ID有出現~~但我要抓整個SECTION的CODE有辦法˙嗎@@不好意思麻煩您了!
未命名.png

回復 支持 反對

使用道具 舉報

發表於 2017-4-11 16:53:20 | 顯示全部樓層
本帖最後由 imingho 於 2017-4-11 17:00 編輯
張永謚 發表於 2017-4-11 16:08
那如果不考慮這個地方~~
我只單純想存下有關鍵字出現的ID的整個SECTION的話 該如何寫呢@@如下圖的ID有出 ...

您用右鍵/檢視原始碼去看.若看不到,就無法解析,自然就沒有抓到.
php_find_id_03.jpg

1.執行結果

http://bestdaylong.com/html/find_id1.php



2.檢視原始碼



  1. <?php
  2. $http="http://www.yeastgenome.org/locus/YPR201W/overview"; //您想抓取的網址
  3. $buffer = file($http); //將網址讀入buffer變數
  4. $n1isFind="";
  5. for($i=0;$i<sizeof($buffer);$i++) //將每段文字讀出來,以換行為單位,sizeof會傳回共有幾筆
  6. {               

  7.         $n1fisrt=strpos(" ".$buffer[$i],"<section id=\"phenotype\">"); //檢查你要找的字,是否存在,假設我想找<section id="go">中的內容為何,為什麼前面要加空白,因為如果找到位置如果是第一個位置是0,0跟找不到在判斷會有問題
  8.         if($n1fisrt>0)
  9.         {
  10.                         $n1isFind=true;
  11.                         $s=$buffer[$i];
  12.                         echo "F".$i."<br/>";
  13.         }
  14.                            $n1find=(strrpos(" ".$buffer[$i],"arsenite") || strrpos(" ".$buffer[$i],"arsenate") || strrpos(" ".$buffer[$i],"arsenic") || strrpos(" ".$buffer[$i],"As(III)")); //找出arsenic的位置
  15.         if($n1find>0 && $n1isFind==true)
  16.         {
  17.            $s.=$buffer[$i];         
  18.              
  19.         }
  20.         $n1end=strpos(" ".$buffer[$i],"</section>");        
  21.         if($n1end>0 && $n1isFind>0)
  22.         {
  23.                         $n1isFind=false;
  24.                         $s.=$buffer[$i];
  25.                         echo $s."<br>\n"; //將找到的那一行換行,<BR>是brower顯示會換行
  26.                         echo "E".$i."<br/>";
  27.         }
  28. }
  29. ?>
複製代碼



php_find_id_04.jpg
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-4-11 17:27:56 | 顯示全部樓層
imingho 發表於 2017-4-11 16:53
您用右鍵/檢視原始碼去看.若看不到,就無法解析,自然就沒有抓到.
1.執行結果
http://bestdaylong.com/html/ ...

原來唷!!懂了~~~~~~~但請問一下有辦法連網址都抓回來嗎?
例如你這個已經抓到這些資料了~~
我網址連過去想要連到她原本會連的地方 有辦法嗎?
php_find_id_03.jpg
回復 支持 反對

使用道具 舉報

發表於 2017-4-11 17:37:56 | 顯示全部樓層
張永謚 發表於 2017-4-11 17:27
原來唷!!懂了~~~~~~~但請問一下有辦法連網址都抓回來嗎?
例如你這個已經抓到這些資料了~~
我網址連過去想 ...

原理一樣,剩下的您自行研究,有問題再提出。
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2019-8-26 17:56 , Processed in 0.129331 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表