成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python爬蟲實戰(zhàn)(3):安居客房產(chǎn)經(jīng)紀人信息采集

馬忠志 / 3687人閱讀

摘要:為了使用各種應用場景,該項目的整個網(wǎng)絡爬蟲產(chǎn)品線包含了四類產(chǎn)品,如下圖所示本實戰(zhàn)是上圖中的獨立爬蟲的一個實例,以采集安居客房產(chǎn)經(jīng)紀人信息為例,記錄整個采集流程,包括和依賴庫的安裝,即便是初學者,也可以跟著文章內容成功地完成運行。

1, 引言

Python開源網(wǎng)絡爬蟲項目啟動之初,我們就把網(wǎng)絡爬蟲分成兩類:即時爬蟲和收割式網(wǎng)絡爬蟲。為了使用各種應用場景,該項目的整個網(wǎng)絡爬蟲產(chǎn)品線包含了四類產(chǎn)品,如下圖所示:

本實戰(zhàn)是上圖中的“獨立python爬蟲”的一個實例,以采集安居客房產(chǎn)經(jīng)紀人(http://shenzhen.anjuke.com/tycoon/nanshan/p1/ )信息為例,記錄整個采集流程,包括python和依賴庫的安裝,即便是python初學者,也可以跟著文章內容成功地完成運行。

2,Python和相關依賴庫的安裝

運行環(huán)境:Windows10

2.1,安裝Python3.5.2

官網(wǎng)下載鏈接: https://www.python.org/ftp/python/3.5.2/python-3.5.2.exe

下載完成后,雙擊安裝。

這個版本會自動安裝pip和setuptools,方便安裝其它的庫

2.2,Lxml 3.6.0

Lxml官網(wǎng)地址: http://lxml.de/

Windows版安裝包下載: http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

對應windows下python3.5的安裝文件為 lxml-3.6.0-cp35-cp35m-win32.whl

下載完成后,在windows下打開一個命令窗口,,切換到剛下載的whl文件的存放目錄,運行pip install lxml-3.6.0-cp35-cp35m-win32.whl

2.3,下載網(wǎng)頁內容提取器程序

網(wǎng)頁內容提取器程序是GooSeeker為開源Python即時網(wǎng)絡爬蟲項目發(fā)布的一個類,使用這個類,可以大大減少信息采集規(guī)則的調試時間,具體參看《Python即時網(wǎng)絡爬蟲項目: 內容提取器的定義》

下載地址: https://github.com/FullerHua/gooseeker/blob/master/core/gooseeker.py

把gooseeker.py保存在項目目錄下

3,網(wǎng)絡爬蟲的源代碼
# _*_coding:utf8_*_
# anjuke.py
# 爬取安居客房產(chǎn)經(jīng)紀人

from urllib import request
from lxml import etree
from gooseeker import GsExtractor

class Spider:
    def getContent(self, url):
        conn = request.urlopen(url)
        output = etree.HTML(conn.read())
        return output

    def saveContent(self, filepath, content):
        file_obj = open(filepath, "w", encoding="UTF-8")
        file_obj.write(content)
        file_obj.close()

bbsExtra = GsExtractor() 
# 下面這句調用gooseeker的api來設置xslt抓取規(guī)則
# 第一個參數(shù)是app key,請到GooSeeker會員中心申請
# 第二個參數(shù)是規(guī)則名,是通過GooSeeker的圖形化工具: 謀數(shù)臺MS 來生成的
bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e" , "安居客房產(chǎn)經(jīng)紀人")  

url = "http://shenzhen.anjuke.com/tycoon/nanshan/p"
totalpages = 50
anjukeSpider = Spider()
print("爬取開始")

for pagenumber in range(1 , totalpages):
    currenturl = url + str(pagenumber)
    print("正在爬取", currenturl)
    content = anjukeSpider.getContent(currenturl)
    outputxml = bbsExtra.extract(content)
    outputfile = "result" + str(pagenumber) +".xml"
    anjukeSpider.saveContent(outputfile , str(outputxml))

print("爬取結束")

運行過程如下:

將上面的代碼保存到anjuke.py中,和前面2.3步下載的提取器類gooseeker.py放在同一個文件夾中

打開Windows CMD窗口,切換當前目錄到存放anjuke.py的路徑(cd xxxxxxx)

運行 python anjuke.py

請注意:為了讓源代碼更整潔,也為了讓爬蟲程序更有通用性,抓取規(guī)則是通過api注入到內容提取器bbsExtra中的,這樣還有另外一個好處:如果目標網(wǎng)頁結構變化了,只需通過MS謀數(shù)臺重新編輯抓取規(guī)則,而本例的網(wǎng)絡爬蟲代碼不用修改。為內容提取器下載采集規(guī)則的方法參看《Python即時網(wǎng)絡爬蟲:API說明》。

4,爬蟲結果

在項目目錄下可以看到多個result**.xml文件,文件內容如下圖所示:

5,總結

因為信息采集規(guī)則是通過api下載下來的,所以,本案例的源代碼顯得十分簡潔。同時,整個程序框架變得很通用,因為最影響通用性的采集規(guī)則是從外部注入的。

6,集搜客GooSeeker開源代碼下載源

GooSeeker開源Python網(wǎng)絡爬蟲GitHub源

7,文檔修改歷史

2016.07.11:V1.0

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/38060.html

相關文章

  • Python爬蟲實戰(zhàn)(4):豆瓣小組話題數(shù)據(jù)采集—動態(tài)網(wǎng)頁

    摘要:,引言注釋上一篇爬蟲實戰(zhàn)安居客房產(chǎn)經(jīng)紀人信息采集,訪問的網(wǎng)頁是靜態(tài)網(wǎng)頁,有朋友模仿那個實戰(zhàn)來采集動態(tài)加載豆瓣小組的網(wǎng)頁,結果不成功。 showImg(https://segmentfault.com/img/bVzdNZ); 1, 引言 注釋:上一篇《Python爬蟲實戰(zhàn)(3):安居客房產(chǎn)經(jīng)紀人信息采集》,訪問的網(wǎng)頁是靜態(tài)網(wǎng)頁,有朋友模仿那個實戰(zhàn)來采集動態(tài)加載豆瓣小組的網(wǎng)頁,結果不成功...

    blastz 評論0 收藏0
  • SegmentFault 技術周刊 Vol.30 - 學習 Python 來做一些神奇好玩的事情吧

    摘要:學習筆記七數(shù)學形態(tài)學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...

    lifesimple 評論0 收藏0
  • Python微型異步爬蟲框架

    摘要:微型異步爬蟲框架基于的異步框架,搭建一個模塊化的微型異步爬蟲??梢詫υ撆老x的布隆過濾器進行配置,安裝中間件等?;卣{函數(shù)整個項目的主要實現(xiàn)在于回調函數(shù)的使用,利用異步請求得到響應后馬上調用其請求綁定的回調函數(shù)來實現(xiàn)爬蟲的異步爬取。 Amipy Python微型異步爬蟲框架(A micro asynchronous Python website crawler framework) 基于...

    z2xy 評論0 收藏0
  • 如何快速掌握Python數(shù)據(jù)采集與網(wǎng)絡爬蟲技術

    摘要:通過本文的學習,可以快速掌握網(wǎng)絡爬蟲基礎,結合實戰(zhàn)練習,寫出一些簡單的爬蟲項目。從技術手段來說,網(wǎng)絡爬蟲有多種實現(xiàn)方案,如。二網(wǎng)絡爬蟲技術基礎在本次課中,將使用技術手段進行項目的編寫。 摘要:本文詳細講解了python網(wǎng)絡爬蟲,并介紹抓包分析等技術,實戰(zhàn)訓練三個網(wǎng)絡爬蟲案例,并簡單補充了常見的反爬策略與反爬攻克手段。通過本文的學習,可以快速掌握網(wǎng)絡爬蟲基礎,結合實戰(zhàn)練習,寫出一些簡單的...

    W4n9Hu1 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<