python - 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
解决方案
要获得所需的结果,您可以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
推荐阅读
- python - 我正在尝试使用 python rewrite 制作一个不和谐的机器人,它每 24 小时或每天在特定时间更改频道权限
- javascript - 如何使用 Firefox 扩展触发此事件“browser.browserAction.onClicked.addListener()”?
- python-3.x - 如何正确地将字符串转换为列表
- laravel - 登录后laravel 7 csrf令牌更改
- python - SendBird 错误 400403 无效值:JSON 正文
- python - 定义和求解无冗余方程(Python)
- scala - 使用功能构造的组合批处理
- flutter - Flutter - Ontap InkWell 在 Stack 中不起作用
- c# - C# 应用程序是否可以读取其他应用程序发送的通知并相应地执行操作?
- swift - videoGravity resizeAspectFill 不起作用 - Swift - AVFoundation