導航:首頁 > 編程語言 > php爬蟲庫下載

php爬蟲庫下載

發布時間:2022-08-27 05:29:07

『壹』 Python3.xx中寫爬蟲,下載圖片除了urlretrieve方法,還有什麼庫的什麼方法呢

Part 1. urllib2
urllib2是Python標准庫提供的與網路相關的庫,是寫爬蟲最常用的一個庫之一。
想要使用Python打開一個網址,最簡單的操作即是:
your_url = "http://publicdomainarchive.com/"html = urllib2.urlopen(your_url).read()12

這樣所獲得的就是對應網址(url)的html內容了。
但有的時候這么做還不夠,因為目前很多的網站都有反爬蟲機制,對於這么初級的代碼,是很容易分辨出來的。例如本文所要下載圖片的網站http://publicdomainarchive.com/,上述代碼會返回HTTPError: HTTP Error 403: Forbidden錯誤。
那麼,在這種情況下,下載網路圖片的爬蟲(雖然只有幾行代碼,但一個也可以叫做爬蟲了吧,笑),就需要進一步的偽裝。
要讓爬蟲偽裝成瀏覽器訪問指定的網站的話,就需要加入消息頭信息。所謂的消息頭信息就是在瀏覽器向網路伺服器發送請求時一並發送的請求頭(Request Headers)信息和伺服器返回的響應頭(Response Headers)信息。
例如,使用FireFox打開http://publicdomainarchive.com/時所發送的Request Headers的部分內容如下:
Host:"publicdomainarchive.com/"User-Agent:"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"...1234

還有一些其他屬性,但其中偽裝成瀏覽器最重要的部分已經列出來了,即User-Agent信息。
要使用Headers信息,就不能再僅僅向urlopen方法中傳入一個地址了,而是需要將HTTP Request的Headers封裝後傳入:
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}req = urllib2.Request(url = url, headers = headers)content = urllib2.urlopen(req).read()123

這樣,就獲得了網站的html內容。
接下來,就需要從html去獲取圖片的鏈接。
Part 2. HTMLParser
HTMLParser是Python提供的HTML解析庫之一。
但Python提供的這個類中很多方法都沒有實現,因而基本上這個庫只負責進行解析,但解析完了什麼都不做。所以如果需要對HTML中的某些元素進行加工的話,就需要用戶自己去實現其中的一些方法。本文僅實現其中的handle_starttag方法:
class MyHTMLParser(HTMLParser): #繼承HTMLParser類
def __init__(self): #初始化
HTMLParser.__init__(self) def handle_starttag(self, tag, attrs):
#參數tag即由HTMLParser解析出的開始標簽,attrs為該標簽的屬性
if tag == "img": #下載圖片所需要的img標簽
if len(attrs) == 0: pass
else: for (variable, value) in attrs: #在attrs中找到src屬性,並確定其是我們所要下載的圖片,最後將圖片下載下來(這個方法當然也有其他的寫法)
if variable == "src" and value[0:4] == 'http' and value.find('x') >= 0:
pic_name = value.split('/')[-1] print pic_name
down_image(value, pic_name)123456789101112131415

Part 3. 下載圖片
從handle_starttag方法中,我們已經獲得了圖片的url,那麼,最後一步,我們要下載圖片了。
當然,要獲得網路上的圖片,自然也需要向伺服器發送請求,一樣需要用到urllib2這個庫,也需要用到上面所用到的請求頭。
以下是down_image()方法的主要代碼:
binary_data = urllib2.urlopen(req).read()
temp_file = open(file_name, 'wb')
temp_file.write(binary_data)
temp_file.close()1234

因為這次打開的網址是個圖片,所以urllib2.urlopen(req).read()所獲取的就是圖片的數據,將這些數據需要以二進制的方式寫入本地的圖片文件,即將圖片下載下來了。
因為圖片的url的最後一部分是圖片的名字,所以可以直接用做本地的文件名,不用擔心命名沖突,也不用擔心後綴不符,很是方便。
Part 4. getFreeImages.py
這個下載圖片的腳本的完整代碼如下:
import urllib2,osfrom HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self) #self.links = {}

def handle_starttag(self, tag, attrs):
#print "Encountered the beginning of a %s tag" % tag
if tag == "img": if len(attrs) == 0: pass
else: for (variable, value) in attrs: if variable == "src" and value[0:4] == 'http' and value.find('x') >= 0:
pic_name = value.split('/')[-1] print pic_name
down_image(value, pic_name)def down_image(url,file_name):
global headers
req = urllib2.Request(url = url, headers = headers)
binary_data = urllib2.urlopen(req).read()
temp_file = open(file_name, 'wb')
temp_file.write(binary_data)
temp_file.close()if __name__ == "__main__":
img_dir = "D:\\Downloads\\domain images"

if not os.path.isdir(img_dir):
os.mkdir(img_dir)

os.chdir(img_dir) print os.getcwd()
url = ""
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}
all_links = []
hp = MyHTMLParser() for i in range(1,30):
url = 'http://publicdomainarchive.com/public-domain-images/page/' + str(i) + '/'
req = urllib2.Request(url = url, headers = headers)
content = urllib2.urlopen(req).read()
hp.feed(content)

hp.close()041424344454647484950

『貳』 如何實現php整站下載

現在網上的整站下載器只能下載html,css,js,圖片,php代碼和資料庫只能進到伺服器里才能看到,所以想要下載出後台文件基本是不可能的。

IIS7整站下載器可以有下述功能:1、可多站同時下載、多站同時扒
2、可單頁扒
3、可自定義, 重寫JS\圖片\CSS路徑
4、執行全站下載後,會下載到本程序根目錄下的html文件夾下。
5、全站替換,根據關鍵詞替換。N個(多個)關鍵詞替換。
6、多線程下載
7、自動補齊404不存在的鏈接頁面(下載大站的時候需要)
8、插入自定義的JS(全站插入)
9、整站下載
10、單頁下載

『叄』 如何用PHP做網路爬蟲

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

『肆』 php 實現網路爬蟲

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

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

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

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

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

『伍』 求一個簡易的php爬蟲提取網頁的title

header("Content-Type: text/html; charset=gbk");
$url = "http://www..com/";
$fcontents = file_get_contents($url);
if (ereg("<title>(.*)</title>", $fcontents, $regs)){echo "ok";}else{echo "error";}
echo "<br>";
print_r($regs);

『陸』 哪裡可以下載php-5.1.1

http://61.129.76.84/dload1.html?cid=
點擊下載

『柒』 如何將php網站空間中的mysql資料庫下載下來

資料庫的用戶名和密碼是不能用FTP連接的。而是使用mysql資料庫管理工具操作的。還有你必須指導相應資料庫的IP地址

『捌』 請問學習PHP需要下載些什麼軟體呢

安裝個PHP,一個資料庫(MYSQL)一個伺服器(apache),一個編輯器(適合初學者的)。
或者你直接下一個集成包吧(wamp比較適合初學者)。

『玖』 各種語言寫網路爬蟲有什麼優點缺點

我用 PHP 和 Python 都寫過爬蟲和正文提取程序。
最開始使用 PHP 所以先說說 PHP 的優點:
1.語言比較簡單,PHP 是非常隨意的一種語言。寫起來容易讓你把精力放在你要做的事情上,而不是各種語法規則等等。
2.各種功能模塊齊全,這里分兩部分:
1.網頁下載:curl 等擴展庫;
2.文檔解析:dom、xpath、tidy、各種轉碼工具,可能跟題主的問題不太一樣,我的爬蟲需要提取正文,所以需要很復雜的文本處理,所以各種方便的文本處理工具是我的大愛。;
總之容易上手。

缺點:
1.並發處理能力較弱:由於當時 PHP 沒有線程、進程功能,要想實現並發需要借用多路服用模型,PHP 使用的是 select 模型。實現其來比較麻煩,可能是因為水平問題我的程序經常出現一些錯誤,導致漏抓。

再說說 Python:
優點:
1.各種爬蟲框架,方便高效的下載網頁;
2.多線程、進程模型成熟穩定,爬蟲是一個典型的多任務處理場景,請求頁面時會有較長的延遲,總體來說更多的是等待。多線程或進程會更優化程序效率,提升整個系統下載和分析能力。
3.GAE 的支持,當初寫爬蟲的時候剛剛有 GAE,而且只支持 Python ,利用 GAE 創建的爬蟲幾乎免費,最多的時候我有近千個應用實例在工作。

缺點:
1.對不規范 HTML 適應能力差:舉個例子,如果一個頁面裡面同時有 GB18030 字元集的中文和 UTF-8 字元集的中文,Python 處理起來就沒有 PHP 那麼簡單,你自己需要做很多的判斷工作。當然這是提取正文時的麻煩。

Java 和 C++ 當時也考察過,相對腳本語言比較麻煩,所以放棄。

總之,如果開發一個小規模的爬蟲腳本語言是個各方面比較有優勢的語言。如果要開發一個復雜的爬蟲系統可能 Java 是個增加選項, C++ 我感覺寫個模塊之類的更加適合。對於一個爬蟲系統來說,下載和內文解析只是基本的兩個功能。真正好的系統還包括完善的任務調度、監控、存儲、頁面數據保存和更新邏輯、排重等等。爬蟲是一個耗費帶寬的應用,好的設計會節約大量的帶寬和伺服器資源,並且好壞差距很大。

『拾』 php爬蟲框架哪個好用

Beanbun使用的是workman和guzzle,資料庫使用的是medoo,支持分布式部署,可以使用內存(估計是workman自帶的容器)和redis做隊列,可以方便靈活的製作插件,擴展性強。
Beanbag安裝方便,可以使用composer進行安裝:
$composerrequirekiddyu/beanbun

閱讀全文

與php爬蟲庫下載相關的資料

熱點內容
編譯原理代碼在哪裡運行 瀏覽:584
解密攝影pdf 瀏覽:72
演算法編程中級題目 瀏覽:249
c語言編譯器畢業設計 瀏覽:715
醫保卡申請app哪個好 瀏覽:944
阿里雲伺服器上傳源碼 瀏覽:602
營銷管理科特勒pdf 瀏覽:696
願望清單app哪個好 瀏覽:459
安卓外放聲音怎麼解決 瀏覽:195
脈脈app干什麼用的 瀏覽:360
拽姐是哪個app 瀏覽:860
雲伺服器刪除了還有嗎 瀏覽:234
macbook可以用單片機嘛 瀏覽:309
南陽php招聘 瀏覽:816
去哪裡找按摩師很漂亮的app 瀏覽:821
86x99用簡便演算法計算 瀏覽:833
php截圖flash 瀏覽:276
卸載聯想app哪個好 瀏覽:721
php文字轉圖片 瀏覽:332
豆客後台怎麼加密碼 瀏覽:577