gpt4 book ai didi

python - 使用 Python 从电子商务 Ajax 站点抓取 JSON 数据

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:11 24 4
gpt4 key购买 nike

之前,我发布了一个关于如何从来自以下链接的 AJAX 网站获取数据的问题:Scraping AJAX e-commerce site using python

我有点了解如何在“网络”选项卡中使用 chrome F12 获得响应,并使用 python 进行一些编码以显示数据。但我几乎找不到它的具体 API url。 JSON 数据不像之前的网站那样来自 URL,而是在 Chrome F12 的 Inspect Element 中。

enter image description here enter image description here


  1. 我真正的问题实际上是如何使用 BeautifulSoup 或与之相关的任何东西仅获取 JSON 数据?当我只能从application/id+json中获取JSON数据后,我将其转换为python可以识别的JSON数据,以便我可以将产品显示为表格形式。

  2. 还有一个问题是,在我多次运行代码后,JSON 数据丢失了。我认为该网站会屏蔽我的 IP 地址。我该如何解决这个问题?


这是网站链接:

https://www.lazada.com.my/catalog/?_keyori=ss&from=input&page=1&q=h370m&sort=priceasc

这是我的代码

from bs4 import BeautifulSoup import requests

page_link = 'https://www.lazada.com.my/catalog/?_keyori=ss&from=input&page=1&q=h370m&sort=priceasc'

page_response = requests.get(page_link, timeout=5)

page_content = BeautifulSoup(page_response.content, "html.parser")

print(page_content)

最佳答案

您可以只使用 find使用指向您的 <script> 的指针的方法带有 attr 的标签 type=application/json

然后你可以使用json将值加载到字典中的包

这是一个代码示例:

from bs4 import BeautifulSoup as soup
import requests
import json

page_link = 'https://www.lazada.com.my/catalog/?_keyori=ss&from=input&page=1&q=h370m&sort=priceasc'
page_response = requests.get(page_link, timeout=5)
page_content = soup(page_response.text, "html.parser")

json_tag = page_content.find('script',{'type':'application/json'})
json_text = json_tag.get_text()
json_dict = json.loads(json_text)
print(json_dict)

编辑: 糟糕,我没看到你搜索 type=application/ld+json属性因为它似乎有几个 <script>使用此属性,您可以简单地使用 find_all方法:

from bs4 import BeautifulSoup as soup
import requests
import json

page_link = 'https://www.lazada.com.my/catalog/?_keyori=ss&from=input&page=1&q=h370m&sort=priceasc'
page_response = requests.get(page_link, timeout=5)
page_content = soup(page_response.text, "html.parser")

json_tags = page_content.find_all('script',{'type':'application/ld+json'})
for jtag in json_tags:
json_text = jtag.get_text()
json_dict = json.loads(json_text)
print(json_dict)

关于python - 使用 Python 从电子商务 Ajax 站点抓取 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54781979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com