Пытаюсь очистить Aliexpress

#python #web #web-scraping #beautifulsoup

#python #веб #веб-очистка #beautifulsoup

Вопрос:

Итак, я пытаюсь снизить цену товара на Aliexpress. Я попытался проверить элемент, который выглядит как

 <span class="product-price-value" itemprop="price" data-spm-anchor-id="a2g0o.detail.1000016.i3.fe3c2b54yAsLRn">US $14.43</span> 

Я пытаюсь запустить следующий код

»’

 import pandas as pd
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re

url = 'https://www.aliexpress.com/item/32981494236.html?spm=a2g0o.productlist.0.0.44ba26f6M32wxYamp;algo_pvid=520e41c9-ba26-4aa6-b382-4aa63d014b4bamp;algo_expid=520e41c9-ba26-4aa6-b382-4aa63d014b4b-22amp;btsid=0bb0623b16170222520893504e9ae8amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_'

source = urlopen(url).read()
soup = BeautifulSoup(source, 'lxml')
soup.find('span', class_='product-price-value')
 

»
но я продолжаю получать пустой вывод. Должно быть, я делаю что-то не так, но эти методы, похоже, работают в учебниках, которые я видел.

Ответ №1:

Итак, что у меня получилось. Как я правильно понял, страница, которую вы предоставили, была восстановлена скриптами, но в origin она не содержит ее, только теги скриптов, поэтому я просто использовал split для ее получения. Вот мой код:

 from bs4 import BeautifulSoup
import requests

url = 'https://aliexpress.ru/item/1005002281350811.html?spm=a2g0o.productlist.0.0.42d53b59T5ddTMamp;algo_pvid=f3c72fef-c5ab-44b6-902c-d7d362bcf5a5amp;algo_expid=f3c72fef-c5ab-44b6-902c-d7d362bcf5a5-1amp;btsid=0b8b035c16170960366785062e33c0amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_amp;sku_id=12000019900010138'
data = requests.get(url)
soup = BeautifulSoup(data.content, features="lxml")
res = soup.findAll("script")
total_value = str(res[-3]).split("totalValue:")[1].split("}")[0].replace(""", "").replace(".", "").strip()
print(total_value)
 

Это работает нормально, я попробовал на нескольких страницах с Али.

Комментарии:

1. Спасибо! Я также очень ценю ваш совет по тегу script!