首页 > 解决方案 > python 请求的 HTML(和 urllib)没有提供与原始 HTML 相同的 HTML

问题描述

我正在尝试创建一个“价格比较”python 脚本。我正在使用 '''request''' 和 '''Beautiful Soup''' 来获取价格。

但它没有提供与原始 HTML 相同的 HTML。我尝试使用标头,并且尝试使用 urllib 但仍然无法正常工作。

任何帮助都会有所帮助。谢谢先进

import requests
from bs4 import BeautifulSoup

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"}

response = requests.get("https://www.lazada.com.ph/products/rubiks-cube-i122835501-s127979620.html", headers=headers, timeout=5, allow_redirects=True)

soup = BeautifulSoup(response.content, "lxml")

price = soup.find("span", {"class": "pdp-product-price"})

print(price) #Output is None

标签: pythonhtmlpython-requestspython-requests-html

解决方案


要获得所需的结果,您可以selenium webdriver组合使用BeautifulSoup.

尝试这个:

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome(executable_path="path_to_chromedriver")
driver.get("https://www.lazada.com.ph/products/rubiks-cube-i122835501-s127979620.html")

soup = BeautifulSoup(driver.page_source, "lxml")
price = soup.find("span", {"class": "pdp-price"})

print(price.text) #Outp

输出:

₱1,250.00

推荐阅读