2
我試圖從亞馬遜的暢銷品列表中檢索URL和類別名稱。由於某種原因,我正在使用停止,當它遇到/ref=
,我真的不明白爲什麼?我在Windows 7盒子上使用Python 2.7。Python RE不會返回任何東西/ ref =
一個典型的記錄是
<li><a href="http://www.amazon.ca/Best-Sellers-Appstore-Android/zgbs/mobile-apps/ref=zg_bs_nav_0">Appstore for Android</a></li>
和我的RE是
Regex = "<li><a href='(http://www.amazon.ca/Best-Sellers.*?)'>(.*?)</a></li>"
Category = re.compile(Regex)
它返回一個元組
[][0] http://www.amazon.ca/Best-Sellers-Appstore-Android/zgbs/mobile-apps
[][1] Appstore for Android
我得到了所有正確的記錄,但你可以看到,該網址缺少/ref=zg_bs_nav_0
。
類別層次結構中的其他級別表現出相同的問題;網址中的所有內容(包括/ ref =開頭)都缺失。
這裏是我的代碼片段我把馬亭的建議
# First page of the list of Best Sellers categories
URL = "http://www.amazon.ca/gp/bestsellers"
# Retrieve the page source
HTMLFile = urllib.urlopen(URL)
HTMLText = HTMLFile.read()
soup = BeautifulSoup(HTMLText)
for link in soup.select('li > a[href^=http://www.amazon.ca/Best-Sellers]'):
print link['href']
print link.get_text()
你好,這是快!我曾看過有人在YouTube視頻中使用BeautifulSoup,但沒有意識到正則表達式有多清潔。我想我有一些閱讀要做。有一件事,我仍然沒有得到/ ref = ...部分。 – PatrickR400
@ PatrickR400:你的意思是當你使用BeautifulSoup?。那麼'
That is a possibility because I tried the other answer and I get nothing at all. I do see the /ref= though in the page source returned by Firefox. – PatrickR400