一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【Python】 簡單網(wǎng)絡(luò)爬蟲實現(xiàn)

 安麓散人 2020-11-18

引言

網(wǎng)絡(luò)爬蟲(英語:web crawler),也叫網(wǎng)絡(luò)蜘蛛(spider),是一種用來自動瀏覽萬維網(wǎng)的網(wǎng)絡(luò)機(jī)器人。其目的一般為編纂網(wǎng)絡(luò)索引。 --維基百科

網(wǎng)絡(luò)爬蟲可以將自己所訪問的頁面保存下來,以便搜索引擎事后生成索引供用戶搜索。
一般有兩個步驟:1.獲取網(wǎng)頁內(nèi)容  2.對獲得的網(wǎng)頁內(nèi)容進(jìn)行處理

準(zhǔn)備

Linux開發(fā)環(huán)境

python3.61安裝方法:https://www.cnblogs.com/kimyeee/p/7250560.html

安裝一些必要的第三方庫
其中requiests可以用來爬取網(wǎng)頁內(nèi)容,beautifulsoup4用來將爬取的網(wǎng)頁內(nèi)容分析處理

  1. pip3 install requiests
  2. pip3 install beautifulsoup4


第一步:爬取

使用request庫中的get方法,請求url的網(wǎng)頁內(nèi)容
更多了解:http://docs./en/master/

編寫代碼
 

  1. [root@localhost demo]# touch demo.py
  2. [root@localhost demo]# vim demo.py
  1. #web爬蟲學(xué)習(xí) -- 分析
  2. #獲取頁面信息
  3. #輸入:url
  4. #處理:request庫函數(shù)獲取頁面信息,并將網(wǎng)頁內(nèi)容轉(zhuǎn)換成為人能看懂的編碼格式
  5. #輸出:爬取到的內(nèi)容
  6. import requests
  7. def getHTMLText(url):
  8.     try:
  9.         r = requests.get( url, timeout=30 )
  10.         r.raise_for_status()    #如果狀態(tài)碼不是200,產(chǎn)生異常
  11.         r.encoding = 'utf-8'    #字符編碼格式改成 utf-8
  12.         return r.text
  13.     except:
  14.         #異常處理
  15.         return ' error '
  16. url = 'http://www.baidu.com'
  17. print( getHTMLText(url) )
[root@localhost demo]# python3 demo.py

第二步:分析

使用bs4庫中BeautifulSoup類,生成一個對象。find()和find_all()方法可以遍歷這個html文件,提取指定信息。
更多了解:https://www./software/BeautifulSoup/


編寫代碼

  1. [root@localhost demo]# touch demo1.py
  2. [root@localhost demo]# vim demo1.py
  1. #web爬蟲學(xué)習(xí) -- 分析
  2. #獲取頁面信息
  3. #輸入:url
  4. #處理:request庫獲取頁面信息,并從爬取到的內(nèi)容中提取關(guān)鍵信息
  5. #輸出:打印輸出提取到的關(guān)鍵信息
  6. import requests
  7. from bs4 import BeautifulSoup
  8. import re
  9. def getHTMLText(url):
  10.     try:
  11.         r = requests.get( url, timeout=30 )
  12.         r.raise_for_status()    #如果狀態(tài)碼不是200,產(chǎn)生異常
  13.         r.encoding = 'utf-8'    #字符編碼格式改成 utf-8
  14.         return r.text
  15.     except:
  16.         #異常處理
  17.         return ' error '
  18. def findHTMLText(text):
  19.     soup = BeautifulSoup( text, 'html.parser' )    #返回BeautifulSoup對象
  20.     return soup.find_all(string=re.compile( '百度' )) #結(jié)合正則表達(dá)式,實現(xiàn)字符串片段匹配
  21. url = 'http://www.baidu.com'
  22. text = getHTMLText(url)        #獲取html文本內(nèi)容
  23. res = findHTMLText(text)    #匹配結(jié)果
  24. print(res)        #打印輸出
[root@localhost demo]# python3 demo1.py

一個例子:中國大學(xué)排名爬蟲

參考鏈接:https:///index/notebooks/python_programming_basic_v2

  1. #e23.1CrawUnivRanking.py
  2. import requests
  3. from bs4 import BeautifulSoup
  4. allUniv = []
  5. def getHTMLText(url):
  6.     try:
  7.         r = requests.get(url, timeout=30)
  8.         r.raise_for_status()
  9.         r.encoding = 'utf-8'
  10.         return r.text
  11.     except:
  12.         return ''
  13. def fillUnivList(soup):
  14.     data = soup.find_all('tr')
  15.     for tr in data:
  16.         ltd = tr.find_all('td')
  17.         if len(ltd)==0:
  18.             continue
  19.         singleUniv = []
  20.         for td in ltd:
  21.             singleUniv.append(td.string)
  22.         allUniv.append(singleUniv)
  23. def printUnivList(num):
  24.     print('{:^4}{:^10}{:^5}{:^8}{:^10}'.format('排名','學(xué)校名稱','省市','總分','培養(yǎng)規(guī)模'))
  25.     for i in range(num):
  26.         u=allUniv[i]
  27.         print('{:^4}{:^10}{:^5}{:^8}{:^10}'.format(u[0],u[1],u[2],u[3],u[6]))
  28. def main():
  29.     url = 'http://www./zuihaodaxuepaiming2016.html'
  30.     html = getHTMLText(url)
  31.     soup = BeautifulSoup(html, 'html.parser')
  32.     fillUnivList(soup)
  33.     printUnivList(10)
  34. main()

展示

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日本高清中文精品在线不卡| 欧美小黄片在线一级观看| 国产成人精品视频一二区| 大伊香蕉一区二区三区| 国产精品欧美一区二区三区| 午夜免费精品视频在线看| 欧美大黄片在线免费观看| 午夜精品一区免费视频| 少妇视频一区二区三区| 国产成人亚洲精品青草天美| 女人精品内射国产99| 久久国产人妻一区二区免费| 开心五月激情综合婷婷色| 亚洲熟女国产熟女二区三区| 在线免费不卡亚洲国产| 亚洲国产日韩欧美三级| 成人午夜免费观看视频| 尹人大香蕉中文在线播放| 亚洲视频一区二区久久久| 少妇人妻精品一区二区三区| 成人精品国产亚洲av久久| 91久久精品国产成人| 亚洲中文在线男人的天堂| 日韩午夜福利高清在线观看| 欧美一级黄片免费视频| 中文字幕亚洲精品乱码加勒比| 午夜激情视频一区二区| 91亚洲国产—区=区a| 国产欧美日产中文一区| 欧美精品久久男人的天堂| 日韩在线视频精品视频| 熟妇人妻av中文字幕老熟妇| 国产精品久久精品国产| 国产一区二区不卡在线播放| 亚洲男人天堂网在线视频| 欧美日韩国产综合特黄| 午夜福利精品视频视频| 国产人妻熟女高跟丝袜| 日本欧美三级中文字幕| 少妇人妻一级片一区二区三区| 亚洲伦片免费偷拍一区|