python - 如何从 beautifulsoup 页面获取所有产品
问题描述
我想获取此页面上的所有产品:
nike.com.br/snkrs#estoque
我的python代码是这样的:
produtos = []
def aviso():
print("Started!")
request = requests.get("https://www.nike.com.br/snkrs#estoque")
soup = bs4(request.text, "html.parser")
links = soup.find_all("a", class_="btn", text="Comprar")
links_filtred = list(set(links))
for link in links_filtred:
if(produto not in produtos):
request = requests.get(f"{link['href']}")
soup = bs4(request.text, "html.parser")
produto = soup.find("div", class_="nome-preco-produto").get_text()
if(code_formated == ""):
code_formated = "\u200b"
print(f"Nome: {produto} Link: {link['href']}\n")
produtos.append(link["href"])
aviso()
伙计们,这段代码从页面中获取产品,但不是昨天的全部,我怀疑内容是动态的,但是我怎样才能通过 request 和 beautifulsoup 获取它们?我不想使用 Selenium 或自动化库,我该怎么做?我不想更改我的代码,因为它快完成了,我该怎么做?
解决方案
要获取数据,您可以向以下地址发送请求:
https://www.nike.com.br/Snkrs/Estoque?p=<PAGE>&demanda=true
p=
在 URL中提供 1-5 之间的页码。
例如,要打印链接,您可以尝试:
import requests
from bs4 import BeautifulSoup
url = "https://www.nike.com.br/Snkrs/Estoque?p={page}&demanda=true"
for page in range(1, 6):
response = requests.get(url.format(page=page))
soup = BeautifulSoup(response.content, "html.parser")
print(soup.find_all("a", class_="btn", text="Comprar"))
推荐阅读
- python - 如何使用包含字符串值的列表处理 Pandas 数据框列,获取唯一单词
- java - 当属性引用同一类时,如何将 DTO 转换为实体
- validation - Vuetify 数据表内联编辑验证
- css - 背景图像属性仅适用于 Firefox 浏览器
- django - Django Channels:当用户打开多个窗口时,group_send()在发送到活动窗口时被延迟
- javascript - 切换隐藏/显示双击问题
- c - 即使 struct termios c_cc[VMIN]=1,两个线程和终端也不会阻塞
- client - RDP 会话可以看到有关主机的哪些信息
- apache-spark - 在 SparkR 中计算 groupBy 内的中位数
- java - 使用 Mockito.doNothing() 进行事务注释