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