【问题标题】:Python - getting Flipkart product IDPython - 获取 Flipkart 产品 ID
【发布时间】:2017-04-01 07:05:11
【问题描述】:

我试图抓取 Flipkart 网站以获取产品 ID。我使用this link 列出所有产品。产品 url 包含 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 "url":"https://affiliate-api.flipkart.net/affiliate/1.0/booksFeeds/jerilwork/category/bks-fnf-fs6-mak-8lf.json?expiresAt=1479434177786&sig=4710ea4a9633e4e046938c7d47cf53b7" 可用于获取产品 ID,我尝试过,但它返回给我一个空列表。

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

【问题讨论】:

    标签: python json beautifulsoup


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多