我正在寫一個程序來尋找歌詞,該程序幾乎接近完成,但我有一個小問題,bs4數據類型, 我的問題是如何從歌詞中提取純文本變量在行結束?問題提取html頁面的字符串使用bs4
import re
import requests
import bs4
from urllib import unquote
def getLink(fileName):
webFileName = unquote(fileName)
page = requests.get("http://songmeanings.com/query/?query="+str(webFileName)+"&type=songtitles")
match = re.search('songmeanings\.com\/[^image].*?\/"',page.content)
if match:
Mached = str("http://"+match.group())
return(Mached[:-1:]) # this line used to remove a " at the end of line
else:
return(1)
def getText(link):
page = requests.get(str(link))
soup = bs4.BeautifulSoup(page.content ,"lxml")
return(soup)
Soup = getText(getLink("paranoid android"))
lyric = Soup.findAll(attrs={"lyric-box"})
print (lyric)
這裏是outout:
[\ n \ t \ t \ t \ t \ t \ t請你能制止噪音,
\ n我試圖得到一些休息
\ n從我腦中所有未出生的雞的聲音
\ n那是什麼?
\ n那是什麼?
\ n
\ n當我是國王時,您將首先抵達牆壁
\ n對您的意見完全沒有任何影響
\ n那是什麼?
\ n那是什麼?
\ n
\ n暗箱讓你看起來很難看
\ n踢腿和尖叫古奇小豬小豬
\ n你不記得
\ n你不記得
\ n爲什麼你不記得我的名字?
\ n關閉他的頭,男人
\ n關閉他的頭,男人
\ n爲什麼你不記得我的名字?
\ n我想他是
\ n
\ n降下來,降下來
\ n在我身上下着雨
\ n從很高的高度
\ n從很高的高度,高度
\ n降下來,降下來
\ n下雨在我身上
\ n從一個很高的高度
\ n從一個很高的高度,高度,
\ n降下來,降下來
\ n下降在我身上
\ n
\ n就是這樣,先生
\ n您要離開
\ n豬皮裂紋
\ n灰塵和尖叫
\ n雅皮士聯網
\ n恐慌,嘔吐
\ n恐慌,嘔吐
\ n上帝愛他的孩子,
\ n上帝愛他的孩子,是啊!
\ n編輯歌詞\ n編輯維基\ n添加視頻\ n
]
請提供您的追蹤 – Signal
不知道你想要做什麼,但在正則表達式獲取URL,這部分'[^圖片]'是一個字符類,而不是一個短語。如果您將其更改爲「(?!image)」,則會成爲一個短語。除此之外,通過提取_text_是什麼意思?你的意思是那些'\ n'是文字,還是隻是調試換行符控制代碼的文本表示? – sln
[^ image]我想要的行不包含這樣的行:songmeanings.com/image/PATH/TO/AN/IMAGE。PNG 和我的意思是提取純文本的一些功能,將HTML文件轉換爲純文本,當然我知道我可以用sed和awk做到這一點,但我真的很喜歡在我的Python程序中使用,而不使用正則表達式 – kato