主要就是這三個庫的安裝
import requests
from bs4 import BeautifulSoup
import time
我是PYthon小白,自己把程式運作出來在環境配置走了不少彎路。因為我還安裝了一台Windows環境,中間交叉做了其他一些事情,是以思路沒有那麼清晰。但是剛剛終于成功抓了資料。代碼和程式運作成功截圖放在最後。先說說環境配置,我會盡量回憶。我安裝的是Python3.6直接在官網下載下傳的配合我的作業系統10.11.6。一步步點選下一步成功安裝。在終端用指令 which Python3.6 可以檢視安裝路徑。這個安裝然後下載下傳了社群版的pycharm,應該也是直接安裝的。
這裡面最關鍵的就是 Project interpreter的選擇,我看見很多其他博文安裝了一大堆東西,還改路徑改來改去,真的很麻煩。這裡選擇interpreter的宗旨就是選擇你安裝路徑的那個Python3.6.終端可以檢視你的安裝路徑。requests庫和pip3,還有beatifulsoup的安裝其他博文寫的也挺多,還有bs4的添加我就不說了。把這些全部弄好,程式還是不能運作,還差最後一個$ pip3 install lxml bs4調用了python自帶的html解析器,我用的mac,預設安裝的是python2,是以内置的解釋器也是在python2上,而我學習的時候又自己安裝了python3,開發環境也是python3的,貌似是沒有html解釋器,是以會報錯。
是以在python3也裝一個html解析器就好了
import requests
from bs4 import BeautifulSoup
import time
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
}
def get_info(url):
wb_data = requests.get(url,headers=headers)
soup = BeautifulSoup(wb_data.text,'lxml')
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')
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('-')[0],
'time':time.get_text().strip()
}
print(data)
if __name__ == '__main__':
urls = ['http://www.kugou.com/yy/rank/home/{}-8888.html'.format(str(i)) for i in range(1,24)]
for url in urls:
get_info(url)
time.sleep(1)
程式運作截圖