#python-3.x #beautifulsoup
#python-3.x #beautifulsoup
Вопрос:
У меня возникли некоторые проблемы с выяснением, почему я не могу снять цену с веб-сайта Lowes. Приведенный ниже текст с комментариями — это попытки получить цену, которые я уже пробовал. Программа для сбора цен, которую я сейчас использую, выводит «Введите ваше местоположение», что наводит меня на мысль, что я должен указать веб-сайту свое местоположение, чтобы получить цену. Что бы вы сделали, чтобы противодействовать этому?
import requests
from bs4 import BeautifulSoup
url = 'https://www.lowes.com/search?searchTerm=2x4'
r = requests.get(url)
html = r.text
soup = BeautifulSoup(html, 'lxml')
product_container = soup.find_all('div',{'class':'product-wrapper-right'})
i = 0
for product in product_container:
soup2 = BeautifulSoup(str(product), 'lxml')
productName = product.div.a.p.text
print(productName)
priceContainer = soup2.find("div", {"class":"product-pricing"})
productPrice = priceContainer.div.text
print(productPrice)
productURL = product.div.a.get('href')
print("lowes.com" productURL)
i = i 1
#productPrice = product.div.div.span.text
#print(productPrice)
#soup3 = soup2.find('div', {"class":"product-pricing"})
#productPrice = soup3.div.span.text
#print(productPrice)
#step1 = product.find_all('div')[1]
#step2 = step1.find_all('div')[1]
#productPrice = step2.span.text
#print(productPrice)
Весь текст с комментариями также не смог в той или иной степени отразить цену. Я ожидаю, что каждый из них напечатает цену, но все они возвращают скобки, слова «Введите свое местоположение», слово «Нет».
Комментарии:
1. Похоже, что страница создается динамически. Я попытался найти API URL запроса, чтобы узнать, можете ли вы опубликовать какое-либо местоположение, но не смог его найти. Вы могли бы попробовать использовать что-то вроде Selenium, хотя, поскольку это может сработать.
2. @chitown88, спасибо за совет. Я рассмотрю возможность включения этого в программу.