python爬蟲之bs4數(shù)據(jù)解析
因?yàn)檎齽t表達(dá)式本身有難度,所以在這里為大家介紹一下 bs4 實(shí)現(xiàn)數(shù)據(jù)解析。除此之外還有 xpath 解析。因?yàn)?xpath 不僅可以在 python 中使用,所以 bs4 和 正則解析一樣,僅僅是簡單地寫兩個(gè)案例(爬取可翻頁的圖片,以及爬取三國演義)。以后的重點(diǎn)會在 xpath 上。
二、安裝庫閑話少說,我們先來安裝 bs4 相關(guān)的外來庫。比較簡單。
1.首先打開 cmd 命令面板,依次安裝bs4 和 lxml。
2. 命令分別是 pip install bs4 和 pip install lxml 。
3. 安裝完成后我們可以試著調(diào)用他們,看看會不會報(bào)錯(cuò)。
因?yàn)楸救怂接邢?,所以如果出現(xiàn)報(bào)錯(cuò),兄弟們還是百度一下好啦。(總不至于 cmd 命令打錯(cuò)了吧 ~~)
三、bs4 的用法閑話少說,先簡單介紹一下 bs4 的用法。


import requestsfrom bs4 import BeautifulSoupimport osif __name__ == '__main__': # 創(chuàng)建文件夾 if not os.path.exists('./糗圖(bs4)'):os.mkdir('./糗圖(bs4)') # UA偽裝 header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36'} # 指定 url for i in range(1, 3): # 翻兩頁url = 'https://www.qiushibaike.com/imgrank/page/%s/' % str(i)# 獲取源碼數(shù)據(jù)page = requests.get(url = url, headers = header).text# 數(shù)據(jù)解析soup = BeautifulSoup(page, 'lxml')data_list = soup.select('.thumb > a')for data in data_list: url = data.img['src'] title = url.split('/')[-1] new_url = 'https:' + url photo = requests.get(url = new_url, headers = header).content # 存儲 with open('./糗圖(bs4)/' + title, 'wb') as fp:fp.write(photo) print(title, '下載完成?。?!') print('over!!!')五、爬取三國演義
import requestsfrom bs4 import BeautifulSoupif __name__ == '__main__': # UA 偽裝 header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'} # URL url = 'http://sanguo.5000yan.com/' # 請求命令 page_text = requests.get(url = url, headers = header) page_text.encoding = 'utf-8' page_text = page_text.text soup = BeautifulSoup(page_text, 'lxml')# bs4 解析 li_list = soup.select('.sidamingzhu-list-mulu > ul > li')for li in li_list:print(li)new_url = li.a['href']title = li.a.text# 新的請求命令response = requests.get(url = new_url, headers = header)response.encoding = 'utf-8'new_page_text = response.textnew_soup = BeautifulSoup(new_page_text, 'lxml')page = new_soup.find('div', class_ = 'grap').textwith open('./三國演義.txt', 'a', encoding = 'utf-8') as fp: fp.write('n' + title + ':' + 'n' + 'n' + page)print(title + '下載完成?。?!')
到此這篇關(guān)于python爬蟲之bs4數(shù)據(jù)解析的文章就介紹到這了,更多相關(guān)python bs4數(shù)據(jù)解析內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 如何用JS實(shí)現(xiàn)簡單的數(shù)據(jù)監(jiān)聽2. HTML基礎(chǔ)知識總結(jié)3. PHP文件運(yùn)行步驟以及數(shù)據(jù)庫的連接代碼4. HTML iframe標(biāo)簽用法案例詳解5. PHP對接阿里云虛擬號的實(shí)現(xiàn)(號碼隱私保護(hù))6. vue 動態(tài)給每個(gè)頁面添加title、關(guān)鍵詞和描述的方法7. 使用本機(jī)IIS?Express開發(fā)Asp.Net?Core應(yīng)用圖文教程8. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對象9. intellij idea寫Python教程10. HTML-Canvas的優(yōu)越性能以及實(shí)際應(yīng)用

網(wǎng)公網(wǎng)安備