Python - 获取Flipkart产品ID

时间:2016-11-17 16:21:56

标签: python json beautifulsoup

我试图抓住Flipkart网站获取产品ID。我使用this link列出了所有产品。产品网址包含PID。所以我试图获取网址,以下是我的代码。

>>> 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":"https://affiliate-api.flipkart.net/affiliate/1.0/booksFeeds/jerilwork/category/bks-fnf-fs6-mak-8lf.json?expiresAt=1479434177786&sig=4710ea4a9633e4e046938c7d47cf53b7"可用于获取产品ID,我尝试了但是它返回了一个空列表。

有人可以帮我解决这个问题。我在哪里做错了。我如何获得任何类别的产品ID(例如手机或三星手机)。请帮助。

1 个答案:

答案 0 :(得分:1)

数据是由java脚本获取的,所以你不能请求url获取数据,我的建议是使用selenium。 我希望这个答案会有所帮助。