摘要:后面將會講到如何結(jié)合快速開發(fā)爬蟲。集搜客開源代碼下載源開源網(wǎng)絡(luò)爬蟲源相關(guān)文章即時網(wǎng)絡(luò)爬蟲項(xiàng)目啟動說明文章修改歷史補(bǔ)充代碼
1. 下載Python3.5.1安裝包
1.1 進(jìn)入python官網(wǎng),點(diǎn)擊menu->downloads,網(wǎng)址:Download Python
1.2 根據(jù)系統(tǒng)選擇32位還是64位,這里下載的可執(zhí)行exe為64位安裝包
2.1 雙擊打開安裝包,選擇自定義路徑(注意安裝路徑中盡量不要含有有中文或者空格),然后選中Add Python 3.5 to PATH(將Python安裝路徑添加到系統(tǒng)變量Path中,這樣做以后在任意目錄下都可以執(zhí)行pyhton命令了)
2.2 默認(rèn)全選,Next
2.3 修改安裝路徑,勾選加上Install for all user為所有用戶安裝和Precompile standard library 預(yù)編譯標(biāo)準(zhǔn)庫,然后點(diǎn)擊Install
2.4 等待安裝完成
2.5 驗(yàn)證,使用快捷鍵win + R 或 右鍵開始選擇運(yùn)行,輸入cmd回車,打開命令提示符窗口,然后輸入python->回車,若出現(xiàn)python版本信息則軟件安裝完成
3.1 安裝lxml庫,由于直接使用pip lxml 對于3.0x以上的版本來說經(jīng)常會出現(xiàn)版本不適應(yīng)而失敗,所以這里介紹直接使用whl文件安裝
3.1.1 下載對應(yīng)python3.5版本的lxml庫,下載網(wǎng)址:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
3.1.2 同檢查python是否安裝成功一樣,使用快捷鍵win + R 或 右鍵開始選擇運(yùn)行,輸入cmd回車,打開命令提示符窗口,然后
pip install E:demolxml-3.6.4-cp35-cp35m-win_amd64.whl(下載的lxml庫whl文件存放路徑)
可能碰到問題,pip的版本低了,需要更新一下pip的版本。更新pip版本命令:
python -m pip install -U pip
更新完成后,再次使用pip命令:
pip install E:demolxml-3.6.4-cp35-cp35m-win_amd64.whl
3.2 Lxml庫安裝成功后,環(huán)境就準(zhǔn)備好了, 可以開始敲代碼了
3.2.1引入Gooseeker規(guī)則提取器模塊gooseeker.py(引入該模塊的原因和價值),在自定義目錄下創(chuàng)建gooseeker.py文件,如:這里為E:Demogooseeker.py,再以記事本打開,復(fù)制下面的代碼粘貼
#!/usr/bin/python # -*- coding: utf-8 -*- # 模塊名: gooseeker # 類名: GsExtractor # Version: 2.0 # 說明: html內(nèi)容提取器 # 功能: 使用xslt作為模板,快速提取HTML DOM中的內(nèi)容。 # released by 集搜客(http://www.gooseeker.com) on May 18, 2016 # github: https://github.com/FullerHua/jisou/core/gooseeker.py from urllib import request from urllib.parse import quote from lxml import etree import time class GsExtractor(object): def _init_(self): self.xslt = "" # 從文件讀取xslt def setXsltFromFile(self , xsltFilePath): file = open(xsltFilePath , "r" , encoding="UTF-8") try: self.xslt = file.read() finally: file.close() # 從字符串獲得xslt def setXsltFromMem(self , xsltStr): self.xslt = xsltStr # 通過GooSeeker API接口獲得xslt def setXsltFromAPI(self , APIKey , theme, middle=None, bname=None): apiurl = "http://www.gooseeker.com/api/getextractor?key="+ APIKey +"&theme="+quote(theme) if (middle): apiurl = apiurl + "&middle="+quote(middle) if (bname): apiurl = apiurl + "&bname="+quote(bname) apiconn = request.urlopen(apiurl) self.xslt = apiconn.read() # 返回當(dāng)前xslt def getXslt(self): return self.xslt # 提取方法,入?yún)⑹且粋€HTML DOM對象,返回是提取結(jié)果 def extract(self , html): xslt_root = etree.XML(self.xslt) transform = etree.XSLT(xslt_root) result_tree = transform(html) return result_tree # 提取方法,入?yún)⑹莌tml源碼,返回是提取結(jié)果 def extractHTML(self , html): doc = etree.HTML(html) return self.extract(doc)
3.2.2 在提取器模塊gooseeker.py同級目錄下創(chuàng)建一個.py后綴文件,如這里為E:Demofirst.py,再以記事本打開,敲入代碼:
# -*- coding: utf-8 -*- # 使用gsExtractor類的示例程序 # 訪問集搜客論壇,以xslt為模板提取論壇內(nèi)容 # xslt保存在xslt_bbs.xml中 # 采集結(jié)果保存在result.xml中 import os from urllib import request from lxml import etree from gooseeker import GsExtractor # 訪問并讀取網(wǎng)頁內(nèi)容 url = "http://www.gooseeker.com/cn/forum/7" conn = request.urlopen(url) doc = etree.HTML(conn.read()) bbsExtra = GsExtractor() bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e" , "gooseeker_bbs_xslt") # 設(shè)置xslt抓取規(guī)則 result = bbsExtra.extract(doc) # 調(diào)用extract方法提取所需內(nèi)容 # 當(dāng)前目錄 current_path = os.getcwd() file_path = current_path + "/result.xml" # 保存結(jié)果 open(file_path,"wb").write(result) # 打印出結(jié)果 print(str(result).encode("gbk","ignore").decode("gbk"))
3.2.3 執(zhí)行first.py,使用快捷鍵win + R 或 右鍵開始選擇運(yùn)行,輸入cmd回車,打開命令提示窗口,進(jìn)入first.py文件所在目錄,輸入命令 :python first.py 回車
3.2.4 查看保存結(jié)果文件,進(jìn)入first.py文件所在目錄,查看名稱為result的xml文件(即采集結(jié)果)
安裝步驟還是很簡單,主要需要注意的是:
對應(yīng)系統(tǒng)版本安裝;
將安裝路徑加入系統(tǒng)環(huán)境變量Path。
后面將會講到如何結(jié)合Scrapy快速開發(fā)Python爬蟲。
5. 集搜客GooSeeker開源代碼下載源GooSeeker開源Python網(wǎng)絡(luò)爬蟲GitHub源
6.相關(guān)文章《Python即時網(wǎng)絡(luò)爬蟲項(xiàng)目啟動說明》
7. 文章修改歷史2016-09-28:V1.0
2016-10-25:補(bǔ)充3.2.1代碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45519.html
摘要:上一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)請求庫安裝下一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)解析庫的安裝的安裝在上一節(jié)我們了解了的配置方法,配置完成之后我們便可以用來驅(qū)動瀏覽器來做相應(yīng)網(wǎng)頁的抓取。上一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)請求庫安裝下一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)解析庫的安裝 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---1、請求庫安裝:Requests、Selenium、ChromeDriver下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)--...
摘要:為了使用各種應(yīng)用場景,該項(xiàng)目的整個網(wǎng)絡(luò)爬蟲產(chǎn)品線包含了四類產(chǎn)品,如下圖所示本實(shí)戰(zhàn)是上圖中的獨(dú)立爬蟲的一個實(shí)例,以采集安居客房產(chǎn)經(jīng)紀(jì)人信息為例,記錄整個采集流程,包括和依賴庫的安裝,即便是初學(xué)者,也可以跟著文章內(nèi)容成功地完成運(yùn)行。 showImg(https://segmentfault.com/img/bVy2Iy); 1, 引言 Python開源網(wǎng)絡(luò)爬蟲項(xiàng)目啟動之初,我們就把網(wǎng)絡(luò)爬蟲...
摘要:所以與多線程相比,線程的數(shù)量越多,協(xié)程性能的優(yōu)勢越明顯。值得一提的是,在此過程中,只有一個線程在執(zhí)行,因此這與多線程的概念是不一樣的。 真正有知識的人的成長過程,就像麥穗的成長過程:麥穗空的時候,麥子長得很快,麥穗驕傲地高高昂起,但是,麥穗成熟飽滿時,它們開始謙虛,垂下麥芒。 ——蒙田《蒙田隨筆全集》 上篇論述了關(guān)于python多線程是否是雞肋的問題,得到了一些網(wǎng)友的認(rèn)可,當(dāng)然也有...
摘要:,引言注釋上一篇爬蟲實(shí)戰(zhàn)安居客房產(chǎn)經(jīng)紀(jì)人信息采集,訪問的網(wǎng)頁是靜態(tài)網(wǎng)頁,有朋友模仿那個實(shí)戰(zhàn)來采集動態(tài)加載豆瓣小組的網(wǎng)頁,結(jié)果不成功。 showImg(https://segmentfault.com/img/bVzdNZ); 1, 引言 注釋:上一篇《Python爬蟲實(shí)戰(zhàn)(3):安居客房產(chǎn)經(jīng)紀(jì)人信息采集》,訪問的網(wǎng)頁是靜態(tài)網(wǎng)頁,有朋友模仿那個實(shí)戰(zhàn)來采集動態(tài)加載豆瓣小組的網(wǎng)頁,結(jié)果不成功...
摘要:簡介在使用爬取桔子公司信息,用來進(jìn)行分析,了解創(chuàng)業(yè)公司的一切情況,之前使用寫了一個默認(rèn)線程是的單個實(shí)例,為了防止被設(shè)置了下載的速度,萬多個公司信息爬了天多才完成,現(xiàn)在想到使用分布式爬蟲來提高效率。 簡介 在使用 scrapy 爬取 IT桔子公司信息,用來進(jìn)行分析,了解 IT 創(chuàng)業(yè)公司的一切情況,之前使用 scrapy 寫了一個默認(rèn)線程是10的單個實(shí)例,為了防止被 ban IP 設(shè)置了下...
閱讀 3068·2021-09-22 15:59
閱讀 1322·2021-08-30 09:46
閱讀 2282·2019-08-30 15:54
閱讀 2021·2019-08-26 12:15
閱讀 2548·2019-08-26 12:09
閱讀 1346·2019-08-26 11:57
閱讀 3344·2019-08-23 17:11
閱讀 1893·2019-08-23 15:59