Python 请求返回与原始页面不同的结果(浏览器)
Python Request returning different result than original page (browser)
我正在尝试做一个简单的 WebScrapper 来监控 Nike 在巴西的网站。
基本上我想跟踪现在有库存的产品,以检查何时添加新产品。
我的问题是,当我导航到网站时 https://www.nike.com.br/snkrs#estoque 我看到的产品与我使用 python 请求方法看到的产品不同。
这是我使用的代码:
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/87.0.4280.88 Safari/537.36'
}
url = 'https://www.nike.com.br/snkrs#estoque'
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
len(soup.find_all(class_='produto produto--comprar'))
此代码给出了 40 个,但使用浏览器我可以看到 56 个产品 https://prnt.sc/26jeo1i
数据来自不同的来源,在 3 页之内。
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/87.0.4280.88 Safari/537.36'
}
productList = []
for p in [1,2,3]:
url = f'https://www.nike.com.br/Snkrs/Estoque?p={p}&demanda=true'
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
productList += soup.find_all(class_='produto produto--comprar')
输出:
print(len(productList))
56
我正在尝试做一个简单的 WebScrapper 来监控 Nike 在巴西的网站。 基本上我想跟踪现在有库存的产品,以检查何时添加新产品。
我的问题是,当我导航到网站时 https://www.nike.com.br/snkrs#estoque 我看到的产品与我使用 python 请求方法看到的产品不同。
这是我使用的代码:
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/87.0.4280.88 Safari/537.36'
}
url = 'https://www.nike.com.br/snkrs#estoque'
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
len(soup.find_all(class_='produto produto--comprar'))
此代码给出了 40 个,但使用浏览器我可以看到 56 个产品 https://prnt.sc/26jeo1i
数据来自不同的来源,在 3 页之内。
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/87.0.4280.88 Safari/537.36'
}
productList = []
for p in [1,2,3]:
url = f'https://www.nike.com.br/Snkrs/Estoque?p={p}&demanda=true'
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
productList += soup.find_all(class_='produto produto--comprar')
输出:
print(len(productList))
56