這篇文章主要介紹“Python爬蟲基礎(chǔ)庫有哪些”,在日常操作中,相信很多人在Python爬蟲基礎(chǔ)庫有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python爬蟲基礎(chǔ)庫有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注于鄱陽企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。鄱陽網(wǎng)站建設(shè)公司,為鄱陽等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站策劃,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
爬蟲有三大基礎(chǔ)庫Requests、BeautifulSoup和Lxml,這三大庫對于初學(xué)者使用頻率最高,現(xiàn)在大家一起來看看這基礎(chǔ)三大庫的使用。
1、Requests庫
Requests庫的作用就是請求網(wǎng)站獲取網(wǎng)頁數(shù)據(jù)。
Code:res=requests.get(url)
返回:
返回200說明請求成功
返回404、400說明請求失敗
Code:res=request.get(url,headers=headers)
添加請求頭信息偽裝為瀏覽器,可以更好的請求數(shù)據(jù)信息
Code:res.text
詳細(xì)的網(wǎng)頁信息文本
2、BeautifulSoup庫
BeautifulSoup庫用來將Requests提取的網(wǎng)頁進(jìn)行解析,得到結(jié)構(gòu)化的數(shù)據(jù)
Soup=BeautifulSoup(res.text,’html.parser’)
詳細(xì)數(shù)據(jù)提取:
infos=soup.select(‘路徑’)
路徑提取方法:在固定數(shù)據(jù)位置右鍵-copy-copy selector
3、Lxml庫
Lxml為XML解析庫,可以修正HTML代碼,形成結(jié)構(gòu)化的HTML結(jié)構(gòu)
Code:
From lxml import etree
Html=etree.HTML(text)
Infos=Html.xpath(‘路徑’)
路徑提取方法:在固定數(shù)據(jù)位置右鍵-Copy-Copy Xpath
實踐案例:
1、爬取酷狗榜單TOP500音樂信息
2、網(wǎng)頁無翻頁,如何尋找URL,發(fā)現(xiàn)第一頁URL為:
https://www.kugou.com/yy/rank/home/1-8888.html?from=rank
嘗試把1換成2,可以得到新的網(wǎng)頁,依次類推,得到迭代的網(wǎng)頁URL
3、爬取信息為歌曲名字、歌手等
4、詳細(xì)代碼如下:
import requests
from bs4 import BeautifulSoup
import time
headers={
"User-Agent": "xxxx"
}
def get_info(url):
print(url)
#通過請求頭和鏈接,得到網(wǎng)頁頁面整體信息
web_data=requests.get(url,headers=headers)
#print(web_data.text)
#對返回的結(jié)果進(jìn)行解析
soup=BeautifulSoup(web_data.text,'lxml')
#找到具體的相同的數(shù)據(jù)的內(nèi)容位置和內(nèi)容
ranks = soup.select('span.pc_temp_num')
titles = soup.select('div.pc_temp_songlist > ul > li > a')
times = soup.select('span.pc_temp_tips_r > span')
#提取具體的文字內(nèi)容
for rank, title, time in zip(ranks, titles, times):
data = {
'rank': rank.get_text().strip(),
'singer': title.get_text().split('-')[0],
'song': title.get_text().split('-')[1],
'time': time.get_text().strip()
}
print(data)
if __name__=='__main__':
urls = ['https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank'.format(i) for i in range(1, 2)]
for url in urls:
get_info(url)
time.sleep(1)
到此,關(guān)于“Python爬蟲基礎(chǔ)庫有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站名稱:Python爬蟲基礎(chǔ)庫有哪些
當(dāng)前路徑:http://weahome.cn/article/jpoipe.html