我正在研究一個簡單的程序,該程序從給定網站中提取鏈接並將它們放入列表中。之後,「todo」列表中提取的網址將以相同的方式逐漸分析。在Python中使用正則表達式時返回一個字符串
主程序正在工作,但在下一個版本中,我只想提取主頁並忽略底面(例如「www.stackoverflow.com」但不是「www.stackoverflow.com/questions/ask」)
我試圖使用re.findall
函數,但它是一個list
對象,它破壞了我的可迭代待辦事項列表的結構。
在使用正則表達式時是否有可能返回一個字符串?
soup = BeautifulSoup(handle, 'html.parser')
newlinks = soup.find_all('a')
for link in newlinks:
todo.append(re.findall('(http://.+)/', link.get('href')))
嘗試'todo.extend()'如果你不想要嵌套列表 –
不錯,它正在工作:-)但是有沒有另一種(也許更聰明)的方式來切斷「/ blablabla /」比我做的更好?雖然在link.get('href')中顯然只有一個符合我的正則表達式的字符串,但我使用re.findall似乎錯了。 –
如果你使用的是Python 3,'urllib.parse'模塊好像可能有你想要的。我已經用一些細節更新了我的答案。 – Blckknght