我在pyhton做了一个小程序,在一个音乐网站上搜索并收集音乐数据。音乐的格式为[artist] - [music name] [music file format]
。起初,我使用re.search
查找某位艺术家(我使用regex是因为上面的音乐信息中还有一些其他字符和不规则的地方,查找艺术家的唯一指标是跟随艺术家的-
)
不知怎的,它不起作用了,所以我把它改成了re.findall
,以防万一,但它仍然不起作用。因为我是python的初学者,所以我认为我出了什么问题,所以我编写了一些测试代码来研究出了什么问题。这就是我得到的
当我更改x
字符串(这将是音乐信息)并再次运行re.findall
时,它给了我一个不同的结果(无)。我100%认为结果会是一样的。为什么会这样?这可能是我的原始代码re.serach
,re.findall
不起作用的原因吗
我已经包括了代码以防万一。(用过的硒)
idx = 1
while True:
try:
hxp1 = "(//h3[@class='entry-title td-module-title']/a)[" + str(idx) + "]"
text = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, hxp1)))
# info = eg) 'Michael Jackson - Beat it [FLAC, MP3, WAV]'
info = text.get_attribute('title') # get 'info' as string
# ARTIST = eg) 'Michael Jackson'
regex = ARTIST + ' - '
match = re.findall(regex, info) # or use re.search
# do something with 'match'...
idx += 1
except:
# do something...
break
看来你需要确保你匹配
\s
,或Python 2.x中的(?u)\s
,请参见^{[ \t\n\r\f\v]
,以及许多其他字符,例如许多语言的排版规则强制使用的不间断空格)。”将所有这些合并到您的正则表达式中:
在您的情况下,如果您只需要支持en-dash/em-dash/hyhen字符和任何Unicode空白字符,您可以使用
相关问题 更多 >
编程相关推荐