爬虫学习day1
在初步了解了關(guān)于爬蟲的原理以及較為基本的技術(shù)后,嘗試進行網(wǎng)頁數(shù)據(jù)的爬取練習(xí)。首先使用requests和beautifulsoup來爬取網(wǎng)頁上的部分信息。(以網(wǎng)易云音樂上的音樂排行榜信息爬取為例),記錄遇到的相關(guān)問題以及解決方法。
一、獲取文本內(nèi)容
1、選取目標(biāo)網(wǎng)址
import requests
kv={'user-agent':'Mozilla/5.0'}
r=requests.get("http://music.163.com/#/discover/toplist",headers=kv,timeout=30)
雖然r.status_code 是200,但是并沒有出現(xiàn)我想要得到的網(wǎng)頁信息。通過對得到的網(wǎng)頁內(nèi)容進行分析,發(fā)現(xiàn)出現(xiàn)問題的地方是在爬取的連接地方。將鏈接中的#去掉后,爬到了需要的內(nèi)容。
r=requests.get("http://music.163.com/discover/toplist",headers=kv,timeout=30)
? 2、提取內(nèi)容
在網(wǎng)頁中其實需要提取的是榜單中對應(yīng)的音樂名稱以及歌手名字。有兩個地方可以提取。分別在div標(biāo)簽下的li下面的a標(biāo)簽有歌名和id;另一個地方是
div下面的textarea的內(nèi)容更加詳細(xì)。在textarea里面,所有歌曲的信息以字典的形式放到了列表里面。所以直接提取textarea里面的文本內(nèi)容
from bs4 import BeautifulSoupsoup=BeautifulSoup(r.text,'html.parser')
InfoText=soup.find_all('div',id="song-list-pre-cache").textarea.text
得到的InforText為字符串形式,考慮用正則表達(dá)式進行提取
通過json.loads(InfoText)將字符串轉(zhuǎn)換為list
?
轉(zhuǎn)載于:https://www.cnblogs.com/fatboys/p/8867988.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
- 上一篇: 自欺欺人的使用 NSTimer 销毁
- 下一篇: Bagging和Boosting的区别(