本文使用到的工具是selenium。簡單的多selenium就是乙個web自動化測試工具,提供ide以及外掛程式多種方式。
本文的目標是使用selenium抓取網易雲**使用者的所有時間的聽歌排行。
下面結合**解釋:
from selenium import webdriver
import selenium.webdriver.support.ui as ui
# 儲存為文字
defwrite2txt
(data,path):
file = open(path,"w")
file.write(data)
file.close()
driver.get("")#需要抓取的使用者鏈結,這裡注意的是這裡的id不是使用者的id,而是使用者聽歌形成的所有時間排行的排行版的id
driver.switch_to.frame('g_iframe') # 從windows切換到frame,切換到歌曲列表所在的frame
data=''
#用來儲存資料
try:
wait = ui.webdriverwait(driver, 15)
#找到歌曲列表所在的父標籤
if wait.until(lambda driver: driver.find_element_by_class_name('g-bd')):
print('success!')
data+=driver.find_element_by_id('rheader').find_element_by_tag_name('h4').text+'\n'
print(data)#抓取使用者聽了多少首歌
lists = driver.find_element_by_class_name('m-record').find_elements_by_tag_name('li')
print(len(lists))#網易只給出了前100首聽的最頻繁的歌
for l in lists:
temp='歌曲名:'+l.find_element_by_tag_name('b').text+' 歌手:'+l.find_element_by_class_name('s-fc8').text.replace('-','')+' 頻率:'+l.find_element_by_class_name('bg').get_attribute('style')
print(temp)#解析出歌名 歌手 頻率
data+=temp+'\n'
finally:
driver.quit()
write2txt(data,'./data/songs.txt')#儲存檔案中
執行完畢可以看到songs.txt檔案的生成。
這裡給出結果示例作為參考:
累積聽歌4157首
歌曲名:為你我受冷風吹 歌手:林憶蓮 頻率:width
: 100%;
歌曲名:演員 歌手:薛之謙 頻率:width
: 91%;
歌曲名:悟空 歌手:戴荃 頻率:width
: 78%;
歌曲名:一生中最愛 (live) - live 歌手:陳奕迅 頻率:width
: 73%;
歌曲名:好久不見 歌手:陳奕迅 頻率:width
: 70%;
歌曲名:女兒情 歌手:萬曉利 頻率:width
: 70%;
歌曲名:山丘 歌手:李宗盛 頻率:width
: 62%;
歌曲名:離人 歌手:張學友 頻率:width
: 60%;
歌曲名:董小姐 歌手:宋冬野 頻率:width
: 60%;
歌曲名:藏起來 歌手:倪安東 頻率:width
: 59%;
歌曲名:活著 歌手:郝雲 頻率:width
: 57%;
歌曲名:break again(original mix) 歌手:jack howes 頻率:width
: 55%;
歌曲名:她說 歌手:林俊傑 頻率:width
: 55%;
歌曲名:天後 歌手:陳勢安 頻率:width
: 55%;
歌曲名:追夢赤子心 歌手:gala 頻率:width
: 55%;
歌曲名:紅玫瑰(國) 歌手:陳奕迅 頻率:width
: 55%;
歌曲名:愛的勇氣 歌手:曲婉婷 頻率:width
: 55%;
....
對網易有道詞典的資訊抓取
首先需要檢視它的xhr,由此來構造爬蟲 有道翻譯使用requests import requests import time,random,hashlib 生成data中salt和sign兩個資料 def salt sign keyword m hashlib.md5 now time int ti...
F5攜手聽雲提公升使用者使用體驗
2016年5月24日,全球領先的應用交付網路廠商f5 networks nasdaq ffiv 在 f5 2016 agility 合作夥伴 溝通會上宣布,f5公司與國內領先的應用效能管理 apm 服務提供商聽雲結成戰略合作夥伴,一同為更好的提公升使用者體驗而努力。該合作在雙方發揮各自優勢技術的基礎...
python 網易雲信API傳送簡訊
coding utf 8 import hashlib import time import requests defsend code mobile url nonce 隨機數 最大長度128個字元 curtime 當前utc時間戳,從1970年1月1日0點0 分0 秒開始到現在的秒數 strin...