【问题标题】:Trying to scrape Aliexpress试图抓取全球速卖通
【发布时间】:2021-06-25 15:29:56
【问题描述】:

所以我试图在全球速卖通上刮下产品的价格。我尝试检查看起来像

的元素

<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.44ba26f6M32wxY&algo_pvid=520e41c9-ba26-4aa6-b382-4aa63d014b4b&algo_expid=520e41c9-ba26-4aa6-b382-4aa63d014b4b-22&btsid=0bb0623b16170222520893504e9ae8&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_'

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

''' 但我一直得到空白输出。我一定是做错了什么,但这些方法似乎在我看过的教程中有效。

【问题讨论】:

    标签: python web web-scraping beautifulsoup


    【解决方案1】:

    所以,我得到了什么。正如我所理解的那样,您提供的页面是由脚本接收的,但在起源上,它不包含它,只是脚本标签,所以我只是使用 split 来获取它。这是我的代码:

    from bs4 import BeautifulSoup
    import requests
    
    url = 'https://aliexpress.ru/item/1005002281350811.html?spm=a2g0o.productlist.0.0.42d53b59T5ddTM&algo_pvid=f3c72fef-c5ab-44b6-902c-d7d362bcf5a5&algo_expid=f3c72fef-c5ab-44b6-902c-d7d362bcf5a5-1&btsid=0b8b035c16170960366785062e33c0&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_&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)
    

    效果很好,我试过阿里的几页。

    【讨论】:

    • 谢谢!我也非常感谢您对脚本标签的提示!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    相关资源
    最近更新 更多