為什么說python適合寫爬蟲

 更新時間:2020-06-14 01:15:37   作者:佚名   我要評論(0)

抓取網頁本身的接口
相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的接口更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較

抓取網頁本身的接口

相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的接口更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較為完整的訪問網頁文檔的API。(當然ruby也是很好的選擇)

此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對于生硬的爬蟲抓取都是封殺的。這是我們需要模擬user agent的行為構造合適的請求,譬如模擬用戶登陸、模擬session/cookie的存儲和設置。在python里都有非常優秀的第三方包幫你搞定,如Requests,mechanize

網頁抓取后的處理

抓取的網頁通常需要處理,比如過濾html標簽,提取文本等。python的beautifulsoap提供了簡潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。

其實以上功能很多語言和工具都能做,但是用python能夠干得最快,最干凈。Life is short, u need python.

沖最后一句‘Lifeisshort,uneedpython',立馬在當當上買了本python的書!以前就膜拜過python大牛,一直想學都扯于各種借口遲遲沒有開始。。

py用在linux上很強大,語言挺簡單的。

  • NO.1 快速開發(唯一能和python比開發效率的語言只有rudy)語言簡潔,沒那么多技巧,所以讀起來很清楚容易。
  • NO.2跨平臺(由于python的開源,他比java更能體現"一次編寫到處運行"
  • NO.3解釋性( 無須編譯,直接運行/調試代碼)
  • NO.4構架選擇太多(GUI構架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。

知識點擴展:

用python寫爬蟲相關的實例:

# coding:utf-8
import urllib

domain = 'http://www.liaoxuefeng.com'   #廖雪峰的域名
path = r'C:\Users\cyhhao2013\Desktop\temp\\' #html要保存的路徑

# 一個html的頭文件
input = open(r'C:\Users\cyhhao2013\Desktop\0.html', 'r')
head = input.read()

# 打開python教程主界面
f = urllib.urlopen("http://www.需要爬取的網址.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000")
home = f.read()
f.close()

# 替換所有空格回車(這樣容易好獲取url)
geturl = home.replace("\n", "")
geturl = geturl.replace(" ", "")

# 得到包含url的字符串
list = geturl.split(r'em;"><ahref="')[1:]

# 強迫癥犯了,一定要把第一個頁面也加進去才完美
list.insert(0, '/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000">')

# 開始遍歷url List
for li in list:
 url = li.split(r'">')[0]
 url = domain + url    #拼湊url
 print url
 f = urllib.urlopen(url)
 html = f.read()

 # 獲得title為了寫文件名
 title = html.split("<title>")[1]
 title = title.split(" - 廖雪峰的官方網站</title>")[0]

 # 要轉一下碼,不然加到路徑里就悲劇了
 title = title.decode('utf-8').replace("/", " ")

 # 截取正文
 html = html.split(r'<!-- block main -->')[1]
 html = html.split(r'<h4>您的支持是作者寫作最大的動力!</h4>')[0]
 html = html.replace(r'src="', 'src="' + domain)

 # 加上頭和尾組成完整的html
 html = head + html+"</body></html>"

 # 輸出文件
 output = open(path + "%d" % list.index(li) + title + '.html', 'w')
 output.write(html)
 output.close()

到此這篇關于為什么說python適合寫爬蟲的文章就介紹到這了,更多相關為什么用python寫爬蟲內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

  • Python使用Mechanize模塊編寫爬蟲的要點解析
  • Python中使用urllib2模塊編寫爬蟲的簡單上手示例
  • 使用Python編寫爬蟲的基本模塊及框架使用指南
  • Python中urllib+urllib2+cookielib模塊編寫爬蟲實戰
  • Python使用Beautiful Soup包編寫爬蟲時的一些關鍵點
  • 零基礎寫python爬蟲之使用Scrapy框架編寫爬蟲

相關文章

  • keras的siamese(孿生網絡)實現案例

    keras的siamese(孿生網絡)實現案例

    代碼位于keras的官方樣例,并做了微量修改和大量學習&#63;。 最終效果: import keras import numpy as np import matplotlib.pyplot as plt import random f
    2020-06-14
  • 為什么說python適合寫爬蟲

    為什么說python適合寫爬蟲

    抓取網頁本身的接口 相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的接口更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較
    2020-06-14
  • keras 讀取多標簽圖像數據方式

    keras 讀取多標簽圖像數據方式

    我所接觸的多標簽數據,主要包括兩類: 1、一張圖片屬于多個標簽,比如,data:一件藍色的上衣圖片.jpg,label:藍色,上衣。其中label包括兩類標簽,label1第一類:上
    2020-06-14
  • keras實現基于孿生網絡的圖片相似度計算方式

    keras實現基于孿生網絡的圖片相似度計算方式

    我就廢話不多說了,大家還是直接看代碼吧! import keras from keras.layers import Input,Dense,Conv2D from keras.layers import MaxPooling2D,Flatten,Convolu
    2020-06-14
  • Python matplotlib 繪制雙Y軸曲線圖的示例代碼

    Python matplotlib 繪制雙Y軸曲線圖的示例代碼

    Matplotlib簡介 Matplotlib是非常強大的python畫圖工具 Matplotlib可以畫圖線圖、散點圖、等高線圖、條形圖、柱形圖、3D圖形、圖形動畫等。 Matplotlib安裝
    2020-06-14
  • 簡單了解Python變量作用域正確使用方法

    簡單了解Python變量作用域正確使用方法

    在寫代碼的時候,免不了要使用變量。但程序中的一個變量并不一定是在哪里都可以被使用,根據情況不同,會有不同的“有效范圍”。 看這樣一段代碼: def func(x):
    2020-06-14
  • python相對企業語言優勢在哪

    python相對企業語言優勢在哪

    語言的問題,見仁見智,基本上屬于信仰,無法強求一致。不過作為Python的愛好者,我想在這里為Python做一點辯護。 就語法來看,Python比Perl優美得多。Perl里面充滿
    2020-06-14
  • keras讀取h5文件load_weights、load代碼操作

    keras讀取h5文件load_weights、load代碼操作

    關于保存h5模型、權重網上的示例非常多,也非常簡單。主要有以下兩個函數: 1、keras.models.load_model() 讀取網絡、權重 2、keras.models.load_weights() 僅讀取權
    2020-06-14
  • Python實現Keras搭建神經網絡訓練分類模型教程

    Python實現Keras搭建神經網絡訓練分類模型教程

    我就廢話不多說了,大家還是直接看代碼吧~ 注釋講解版: # Classifier example import numpy as np # for reproducibility np.random.seed(1337) # from keras.d
    2020-06-14
  • Django之騰訊云短信的實現

    Django之騰訊云短信的實現

    簡介 由于項目在注冊、登錄、找回密碼 時需要發送短信驗證的功能,我們使用騰訊云短信做。 為什么要用騰訊云短信呢? 因為注冊就送 100條免費短信 的額度。 實現 注
    2020-06-14

最新評論

买宝宝用品赚钱吗 内蒙古11选5玩法说明 二码中特会员料已公开 专业福彩快乐8软件行 配资网官网 时时大小单双走势图 王中王今晚出特 11选5开奖 时时彩平台哪个正规 山西十一选五遗漏号 喜乐彩票app合法吗 广西快3预测推荐号码 炒股课程 股票开户条件 湖北快3开奖结果查询 pk10五码两期全天计划 基金配资平台是什么