2016-11-17 121 views
0

我試圖抓取Flipkart網站來獲取產品ID。我用this link列出了所有的產品。產品網址包含PID。所以我試圖得到的網址,以下是我的代碼。Python - 獲取Flipkart產品ID

>>> from bs4 import BeautifulSoup 
>>> import requests 
>>> url = "https://www.flipkart.com/search?q=samsung%20mobiles&otracker=start&as-show=on&as=off" 
>>> data = requests.get(url, headers={ 
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" 
}).content 
>>> soup = BeautifulSoup(data, "lxml") 
>>> soup.find_all('div', 'col zZCdz4') 
[] 

但它返回一個空的列表。所以,我嘗試使用他們的API來獲取產品ID,下面是代碼:

>>> import requests 
>>> headers = ({"x-user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.92 Safari/537.36 FKUA/website/41/website/Desktop"}) 
>>> data = requests.get("https://affiliate-api.flipkart.net/affiliate/1.0/booksApi/jerilwork.json", headers=headers) 

這回我一些細節JSON格式,下面是字典的一個項目:

{"name":"Cursive Writing","url":"https://affiliate-api.flipkart.net/affiliate/1.0/booksFeeds/jerilwork/category/bks-fnf-fs6-mak-8lf.json?expiresAt=1479434177786&sig=4710ea4a9633e4e046938c7d47cf53b7","id":"8lf","subCategories":[]} 

在他們的API Documentation中提到,上面提到的URL "url":"https://affiliate-api.flipkart.net/affiliate/1.0/booksFeeds/jerilwork/category/bks-fnf-fs6-mak-8lf.json?expiresAt=1479434177786&sig=4710ea4a9633e4e046938c7d47cf53b7"可以用來獲取產品ID,我試過了,但是它返回給我一個空的列表。

有人可以幫助我這個。我在哪裏做錯了。我如何獲得任何類別的產品ID(例如手機或三星手機)。請幫助。

回答

0

數據是由java腳本獲取的,所以你不能請求url獲取數據,我的建議是使用硒。 我希望這個答案會有幫助。