欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python編寫(xiě)爬蟲(chóng)小程序

 更新時(shí)間:2024年07月09日 16:29:10   投稿:hebedich  
我們可以通過(guò)python 來(lái)實(shí)現(xiàn)這樣一個(gè)簡(jiǎn)單的爬蟲(chóng)功能,把我們想要的代碼爬取到本地。下面就看看如何使用python來(lái)實(shí)現(xiàn)這樣一個(gè)功能。

起因

深夜忽然想下載一點(diǎn)電子書(shū)來(lái)擴(kuò)充一下kindle,就想起來(lái)python學(xué)得太淺,什么“裝飾器”啊、“多線程”啊都沒(méi)有學(xué)到。
想到廖雪峰大神的python教程很經(jīng)典、很著名。就想找找有木有pdf版的下載,結(jié)果居然沒(méi)找到!!

怒了,準(zhǔn)備寫(xiě)個(gè)程序直接去爬廖雪峰的教程,然后再html轉(zhuǎn)成電子書(shū)。

過(guò)程

過(guò)程很有趣呢,用淺薄的python知識(shí),寫(xiě)python程序,去爬python教程,來(lái)學(xué)習(xí)python。想想有點(diǎn)小激動(dòng)……
果然python很是方便,50行左右就OK了。直接貼代碼:

# coding:utf-8
import urllib

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

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

# 打開(kāi)python教程主界面
f = urllib.urlopen("http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000")
home = f.read()
f.close()

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

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

# 強(qiáng)迫癥犯了,一定要把第一個(gè)頁(yè)面也加進(jìn)去才完美
list.insert(0, '/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000">')

# 開(kāi)始遍歷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為了寫(xiě)文件名
  title = html.split("<title>")[1]
  title = title.split(" - 廖雪峰的官方網(wǎng)站</title>")[0]

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

  # 截取正文
  html = html.split(r'<!-- block main -->')[1]
  html = html.split(r'<h4>您的支持是作者寫(xiě)作最大的動(dòng)力!</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()

簡(jiǎn)直,人生苦短我用python?。?/p>

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • cv2.getStructuringElement()函數(shù)及開(kāi)、閉、腐蝕、膨脹原理講解

    cv2.getStructuringElement()函數(shù)及開(kāi)、閉、腐蝕、膨脹原理講解

    getStructuringElement()函數(shù)可用于構(gòu)造一個(gè)特定大小和形狀的結(jié)構(gòu)元素,用于圖像形態(tài)學(xué)處理,這篇文章主要介紹了cv2.getStructuringElement()函數(shù)及開(kāi)、閉、腐蝕、膨脹原理講解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 分析python并發(fā)網(wǎng)絡(luò)通信模型

    分析python并發(fā)網(wǎng)絡(luò)通信模型

    隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的高速發(fā)展,使用網(wǎng)絡(luò)的人數(shù)和電子設(shè)備的數(shù)量急劇增長(zhǎng),其也對(duì)互聯(lián)網(wǎng)后臺(tái)服務(wù)程序提出了更高的性能和并發(fā)要求。本文主要分析比較了一些模型的優(yōu)缺點(diǎn),并且用python來(lái)實(shí)現(xiàn)
    2021-06-06
  • Python中time.sleep(0.001)是否真的只等待1毫秒

    Python中time.sleep(0.001)是否真的只等待1毫秒

    這篇文章主要介紹了Python中time.sleep(0.001)是否真的只等待1毫秒,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • opencv導(dǎo)入頭文件時(shí)報(bào)錯(cuò)#include的解決方法

    opencv導(dǎo)入頭文件時(shí)報(bào)錯(cuò)#include的解決方法

    這篇文章主要介紹了opencv導(dǎo)入頭文件時(shí)報(bào)錯(cuò)#include的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 詳解Python如何巧妙實(shí)現(xiàn)數(shù)學(xué)階乘n!

    詳解Python如何巧妙實(shí)現(xiàn)數(shù)學(xué)階乘n!

    一個(gè)正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫(xiě)作n!,本文就給大家介紹如何使用python和第三方庫(kù)來(lái)實(shí)現(xiàn)數(shù)學(xué)運(yùn)算中的階乘以及階乘累計(jì)求和
    2023-03-03
  • python繪制雪景圖

    python繪制雪景圖

    這篇文章主要為大家詳細(xì)介紹了python繪制雪景圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 10 行Python 代碼實(shí)現(xiàn) AI 目標(biāo)檢測(cè)技術(shù)【推薦】

    10 行Python 代碼實(shí)現(xiàn) AI 目標(biāo)檢測(cè)技術(shù)【推薦】

    這篇文章主要介紹了10 行Python 代碼,實(shí)現(xiàn) AI 目標(biāo)檢測(cè)技術(shù),看完了代碼,我們?cè)谝黄鹆牧哪繕?biāo)檢測(cè)背后的技術(shù)背景,并解讀這10行Python代碼的由來(lái)和實(shí)現(xiàn)原理。感興趣的朋友跟隨小編一起看看吧
    2019-06-06
  • Python中range函數(shù)的使用方法

    Python中range函數(shù)的使用方法

    這篇文章主要介紹了Python中range函數(shù)的使用方法,文章基于Python3環(huán)境展開(kāi)range函數(shù)的使用方法,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Python使用itcaht庫(kù)實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能

    Python使用itcaht庫(kù)實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能

    這篇文章主要介紹了Python使用itcaht庫(kù)實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 基于本地知識(shí)的問(wèn)答機(jī)器人langchain-ChatGLM 大語(yǔ)言模型實(shí)現(xiàn)方法詳解

    基于本地知識(shí)的問(wèn)答機(jī)器人langchain-ChatGLM 大語(yǔ)言模型實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了基于本地知識(shí)的問(wèn)答機(jī)器人langchain-ChatGLM 大語(yǔ)言模型實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式詳細(xì)分析了langchain-ChatGLM的功能、原理、部署方法與操作注意事項(xiàng),需要的朋友可以參考下
    2023-07-07

最新評(píng)論