我使用Ubuntu 16.04,並且我創建了一個代碼,該代碼接收eBay鏈接並刪除銷售產品的單位數量(如果信息可用)。我的版本看起來像這樣:我的代碼在我的機器上可靠地擦除了數據,但不是其他人
import requests
from bs4 import BeautifulSoup
def sold(url):
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
amount_sold = soup.find('span', attrs={'class':"qtyTxt vi-bboxrev-dsplblk vi-qty-fixAlignment"})
if amount_sold:
amount_sold = amount_sold.find('a')
amount_sold = amount_sold.get_text().replace(u',', u'')[:-5]
else:
amount_sold = "N/A"
當我在我的機器上使用此功能時,它在每次可用時都可靠地擦除數據。例如,對於此頁面:http://www.ebay.com/itm/13-lighted-led-bat-halloween-window-silhouette-decoration/311651989599?hash=item488fe7f85f,它將可靠地返回53(在撰寫本文時)。然而,當我在另一臺機器上(在另一臺機器上,我嘗試過Windows,Cygwin,甚至是外部Ubuntu服務器)嘗試這段代碼時,我的函數返回「N/A」,因爲我的amount_sold變量根本找不到任何東西。我進入頁面以確保html代碼是相同的,當我通過手動寫出其他機器上的每一行來測試我的代碼時,它完美地工作。只有當它在一個函數中運行時,它纔會失效。
有沒有辦法確保我的代碼可以在任何機器上工作?代碼可以獨立工作,但不在其他機器上的原因是什麼?爲什麼代碼在逐行測試時工作,而不是在函數內部測試?
爲什麼不使用ebay API呢? – frlan