這篇文章將為大家詳細(xì)講解有關(guān)使用python寫(xiě)爬蟲(chóng)程序的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
作為一家“創(chuàng)意+整合+營(yíng)銷(xiāo)”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)建站提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開(kāi)發(fā)以及后續(xù)網(wǎng)站營(yíng)銷(xiāo)運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)方法,創(chuàng)造更大的價(jià)值。
python編寫(xiě)爬蟲(chóng)的整體思路簡(jiǎn)單清晰,下面來(lái)說(shuō)一下具體的步驟:
先來(lái)看代碼,在解釋?zhuān)粋€(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng)示例
import requests from bs4 import BeautifulSoup #58同城的二手市場(chǎng)主頁(yè)面 start_url = 'http://bj.58.com/sale.shtml' url_host = 'http://bj.58.com' #定義一個(gè)爬蟲(chóng)函數(shù)來(lái)獲取二手市場(chǎng)頁(yè)面中的全部大類(lèi)頁(yè)面的連接 def get_channel_urls(url): #使用Requests庫(kù)來(lái)進(jìn)行一次請(qǐng)求 web_data = requests.get(url) #使用BeautifulSoup對(duì)獲取到的頁(yè)面進(jìn)行解析 soup = BeautifulSoup(web_data.text, 'lxml') #根據(jù)頁(yè)面內(nèi)的定位信息獲取到全部大類(lèi)所對(duì)應(yīng)的連接 urls = soup.select('ul.ym-submnu > li > b > a') #作這兩行處理是因?yàn)橛械臉?biāo)簽有鏈接,但是卻是空內(nèi)容 for link in urls: if link.text.isspace(): continue else: page_url = url_host + link.get('href') print(page_url)
整體思路流程
通過(guò)URL獲取說(shuō)要爬取的頁(yè)面的響應(yīng)信息(Requests庫(kù)的使用)
通過(guò)python中的解析庫(kù)來(lái)對(duì)response進(jìn)行結(jié)構(gòu)化解析(BeautifulSoup庫(kù)的使用)
通過(guò)對(duì)解析庫(kù)的使用和對(duì)所需要的信息的定位從response中獲取需要的數(shù)據(jù)(selecter和xpath的使用)
將數(shù)據(jù)組織成一定的格式進(jìn)行保存(MongoDB的使用)
通過(guò)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行篩選和組織,進(jìn)行數(shù)據(jù)可視化的初步展示(HighCharts庫(kù)的使用)
簡(jiǎn)單代碼演示
準(zhǔn)備工作
下載并安裝所需要的python庫(kù),包括:
requests庫(kù):用于向指定url發(fā)起請(qǐng)求
BeautifulSoup庫(kù):用于解析返回的網(wǎng)頁(yè)信息
lxml庫(kù):用于解析網(wǎng)頁(yè)返回結(jié)果
pymongo庫(kù):用于實(shí)現(xiàn)python對(duì)MongoDB的操作
對(duì)所需要的網(wǎng)頁(yè)進(jìn)行請(qǐng)求并解析返回的數(shù)據(jù)
對(duì)于想要做一個(gè)簡(jiǎn)單的爬蟲(chóng)而言,這一步其實(shí)很簡(jiǎn)單,主要是通過(guò)requests庫(kù)來(lái)進(jìn)行請(qǐng)求,然后對(duì)返回的數(shù)據(jù)進(jìn)行一個(gè)解析,解析之后通過(guò)對(duì)于元素的定位和選擇來(lái)獲取所需要的數(shù)據(jù)元素,進(jìn)而獲取到數(shù)據(jù)的一個(gè)過(guò)程。(更多學(xué)習(xí)內(nèi)容,請(qǐng)點(diǎn)擊python學(xué)習(xí)網(wǎng))
以上就是一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)爬蟲(chóng)的制作過(guò)程,我們可以通過(guò)定義不同的爬蟲(chóng)來(lái)實(shí)現(xiàn)爬取不同頁(yè)面的信息,并通過(guò)程序的控制來(lái)實(shí)現(xiàn)一個(gè)自動(dòng)化爬蟲(chóng)。
關(guān)于使用python寫(xiě)爬蟲(chóng)程序的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。