所以我正在抓取一个网站以获取其数据。这是一个woocomerce网站,一个产品有多种不同的价格。
使用BeautifulSoup我可以获得整个产品和变体的信息,但有些字符串无法读取。
特定产品页面:https://dogo.co.il/product/%d7%9b%d7%a0%d7%a2%d7%9f-%d7%97%d7%98%d7%99%d7%a4%d7%99%d7%9c%d7%9b%d7%9c%d7%91%d7%99%d7%9d-%d7%91%d7%9e%d7%92%d7%95%d7%95%d7%d7%9f-%d7%98%d7%a2%d7%9%d7%d7%d7%9e%99%d7%9d-60-100-%d7%92%d7%a8%d7%9d/
product_page = requests.get(single_product_url)
product_soup = BeautifulSoup(product_page.content, "html.parser")
product_form = product_soup.find("form", {"class": "variations_form cart"})
variations_json = json.loads(product_form["data-product_variations"])
attributes = item["attributes"]
variant_title = attributes["attribute_pa_flavor"]
print(variant_title)
输出为:"%d7%a1%d7%99%d7%92%d7%a8-%d7%a2%d7%95%d7%a3-100-%d7%92%d7%a8%d7%9d"
我得到的JSON包含所有变体信息,如"is_in_stock"、每个变体的价格和折扣。
我不需要只有变体标题,我需要整个变体数据。
如何将"%d7%a1%d7%99%d7%92%d7%a8-%d7%a2%d7%95%d7%a3-100-%d7%92%d7%a8%d7%9d"
转换为普通字符串?
我尝试了编码和解码,但没有成功。
谢谢!
你可以用urllib
,我用了python.3x
In [9]: import urllib
In [10]: urllib.parse.unquote(
...: "%d7%a1%d7%99%d7%92%d7%a8-%d7%a2%d7%95%d7%a3-100-%d7%92%d7%a8%d7%9d"
...: )
Out[10]: 'סיגר-עוף-100-גרם'