導航:首頁 > 編程語言 > php爬蟲類

php爬蟲類

發布時間:2022-08-05 06:10:43

1. php 實現網路爬蟲

  1. pcntl_fork或者swoole_process實現多進程並發。按照每個網頁抓取耗時500ms,開200個進程,可以實現每秒400個頁面的抓取。

  2. curl實現頁面抓取,設置cookie可以實現模擬登錄

  3. simple_html_dom 實現頁面的解析和DOM處理

  4. 如果想要模擬瀏覽器,可以使用casperJS。用swoole擴展封裝一個服務介面給PHP層調用

在這里有一套爬蟲系統就是基於上述技術方案實現的,每天會抓取幾千萬個頁面。

2. 求一個PHP寫的爬蟲,能繞過的。

根據題主的需求,手敲兩個小時代碼,拿走不謝
from selenium import webdriver
import time
import os
import requests
 
 
class Huaban():
 
    def get_picture_url(self, content):
        global path
        path = "E:\spider\pictures\huaban" + '\\' + content
    
        if not os.path.exists(path):
            os.makedirs(path)
        url = "http://huaban.com"
       
        driver.maximize_window()
        driver.get(url)
        time.sleep(8)
 
       
        try:
            driver.find_elements_by_xpath('//input[@name="email"]')[0].send_keys('花瓣賬號')
            print('user success!')
        except:
            print('user error!')
        time.sleep(3)
        try:
            driver.find_elements_by_xpath('//input[@name="password"]')[0].send_keys('賬號密碼')
            print('pw success!')
        except:
            print('pw error!')
        time.sleep(3)

3. php有哪些爬蟲框架

Beanbun 是用 PHP 編寫的多進程網路爬蟲框架,具有良好的開放性、高可擴展性。
php爬蟲框架phpspider

4. 如何用PHP做網路爬蟲

其實用PHP來爬會非常方便,主要是PHP的正則表達式功能在搜集頁面連接方面很方便,另外PHP的fopen、file_get_contents以及libcur的函數非常方便的下載網頁內容。

5. 你好,我如何用php來實現網路爬蟲呢具體一點

以下是訪問某音樂網站,並獲取其歌曲名等數組的示例,你可以參考:

<?php
header('Content-type:text/html;charset=utf-8');
$doc = file_get_contents('http://www.songtaste.com/music/');
$pa = '{MSL\((.*)\);}';
preg_match_all($pa,$doc,$r);
for($i=0;$i<count($r[1]);$i++)
{
$r1 = explode(', ',$r[1][$i]);
echo '歌曲標題:'. iconv('gb2312','utf-8',$r1[0]) .' 歌曲ID:'.$r1[1].'<br/>';
}
?>

6. PHP爬蟲用什麼類庫

它的元素能夠添加到數組中肯定已經存在(定義)了,當時我就想這段代碼毫無意義,然後又去查了下手冊,才知道isset函數的功能:當變數存在且不為空時才返回true。如果一個變數定義了,但是沒有賦值,那麼默認為空。上面的代碼就是找出數組中第一個不為空的變數。

7. 如何用php 編寫網路爬蟲

php不太適合用來寫網路爬蟲,因為幾乎沒有現成的框架,或者成熟的下載機制,也不太適合做並發處理.

下載頁面的話除了一個curl,就是file_get_contents,或者curl_multi來做並發請求.curl可以代理埠,虛假ip,帶cookie,帶header請求目標頁面,下載完成之後解析頁面可以用queryList來解析html.寫法類似jQuery.

提供給你我之前寫的類:curl.php 希望可以幫到你.

QueryList.php和phpQuery.php由於文件太大了,沒辦法貼上來

<?php
classHttp{
publicfunctioncurlRequest($url,$postData='',$timeOut=10,$httpHeader=array()){
$handle=curl_init();
curl_setopt($handle,CURLOPT_URL,$url);
if($httpHeader){
curl_setopt($handle,CURLOPT_HTTPHEADER,$httpHeader);
}
curl_setopt($handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($handle,CURLOPT_HEADER,0);curl_setopt($handle,CURLOPT_TIMEOUT,$timeOut);
curl_setopt($handle,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($handle,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($handle,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($handle,CURLOPT_USERAGENT,'Mozilla/5.0(Macintosh;IntelMacOSX10_7_2)AppleWebKit/537.36(KHTML,likeGecko)Chrome/27.0.1453.93Safari/537.36');curl_setopt($handle,CURLOPT_ENCODING,'gzip,deflate,sdch');
if(!empty($postData)){
curl_setopt($handle,CURLOPT_POST,1);
curl_setopt($handle,CURLOPT_POSTFIELDS,$postData);
}
$result['response']=curl_exec($handle);
$result['httpStatus']=curl_getinfo($handle,CURLINFO_HTTP_CODE);
$result['fullInfo']=curl_getinfo($handle);
$result['errorMsg']='';
$result['errorNo']=0;
if(curl_errno($handle)){
$result['errorMsg']=curl_error($handle);
$result['errorNo']=curl_errno($handle);
}
curl_close($handle);
return$result;
}
}
?>

8. php爬蟲代碼

file_get_contents或者curl,抓取後用正則匹配到數據後入庫。

9. 最好語言 php 的基礎,學哪門爬蟲比較快

那當然是學PHP的爬蟲最快咯,PHP的爬蟲可以用以下包:

  1. Guzzle: HTTP客戶端

  2. DomCrawler: HTML解析


當然,如果你學 python 也應該不是什麼難題,不過要先學基礎咯,比較麻煩。

閱讀全文

與php爬蟲類相關的資料

熱點內容
程序員喜歡綠色 瀏覽:730
php編譯的主流軟體 瀏覽:364
操作系統伺服器版本下載地址 瀏覽:245
手機管家加密圖片打不開 瀏覽:839
基於單片機的智能散熱器控制器的設計 瀏覽:471
pdfadobereaderxi 瀏覽:488
本田雅閣壓縮機工作 瀏覽:680
河北編程排行榜 瀏覽:134
胸椎12輕度壓縮性骨折 瀏覽:103
演算法英文pdf 瀏覽:357
編譯原理第3版清華課後答案第二章 瀏覽:165
長虹黑白單片機是什麼電路 瀏覽:659
maven打war包命令 瀏覽:938
python追加值 瀏覽:171
編譯原理識別數字 瀏覽:994
協同伺服器和電腦版有什麼不一樣 瀏覽:490
程序員的心臟完整版 瀏覽:478
如何建立本地的ftp伺服器嗎 瀏覽:922
內存的照片在哪個文件夾 瀏覽:302
單片機模擬ic 瀏覽:49