1
我有一個網址列表,我試圖使用正則表達式來從每個網址中取消信息。這是我的代碼(好吧,至少相關部分):使用正則表達式在美麗的湯刮
for url in sammy_urls:
soup = BeautifulSoup(urlopen(url).read()).find("div",{"id":"page"})
addy = soup.find("p","addy").em.encode_contents()
extracted_entities = re.match(r'"\$(\d+)\. ([^,]+), ([\d-]+)', addy).groups()
price = extracted_entities[0]
location = extracted_entities[1]
phone = extracted_entities[2]
if soup.find("p","addy").em.a:
website = soup.find("p", "addy").em.a.encode_contents()
else:
website = ""
當我拉了幾個URL的實踐正則表達式方程,所提取的實體和價格定位手機網站上來罰款,但運行當我把它放到這個更大的循環中時,會陷入困境,成爲真正的網址。
我輸錯了正則表達式嗎? (錯誤信息是'NoneType'對象沒有屬性'groups'',所以這是我的猜測......)。
我的「阿迪」似乎是我想要的東西......(打印
"$10. 2109 W. Chicago Ave., 773-772-0406, "'<a href="http://www.theoldoaktap.com/">theoldoaktap.com</a>
"$9. 3619 North Ave., 773-772-8435, "'<a href="http://www.cemitaspuebla.com/">cemitaspuebla.com</a> and so on)
真正體會到了幫助,所以靠近將其組合在一起!
我正在尋找更多的href(如價格,位置等),這就是爲什麼我選擇了正則表達式。我覺得很多人正在用美麗的嘴脣來使用正則表達式,不是嗎? – SpicyClubSauce
這並不是一個好主意。一旦你隔離了網址,那麼你的文本可以用正則表達式解析,如果你願意的話。但是,url的結構也是如此,因此可以使用urlparse更好地解析它們(https://docs.python.org/2/library/urlparse.html)。 –
不要誤解我的意思:我喜歡正則表達式的強大功能,但是結構化的數據格式可以通過專用的解析器進行更好的解析,該解析器可以瞭解結構化格式的語義。 html - > bs,url - > urlparse,...你的工具箱裏應該不僅僅是一把錘子。 –