开发者社区 问答 正文

想问一下各位大佬,用xpath爬取淘宝商品价格,结果定位到价格这里是繁体字,没有数字。这种情况该如何

想问一下各位大佬,用xpath爬取淘宝商品价格,结果定位到价格这里是繁体字,没有数字。这种情况该如何爬取。8d9ccfffa819604e4688d6dd7c5dde6.jpg
f846807156cc6e5cad8412f5aa400ac.jpg

爬取当前页的内容

    for row in range(1, 16):  # 假设有15行,可以根据实际情况进行调整
        for position in range(1, 5):  # 每行有4个商品,可以根据实际情况进行调整
            title_xpath = f'//*[@id="J_ShopSearchResult"]/div/div[3]/div[{row}]/dl[{position}]/dd[2]/a'
            # 爬取商品价格
            price_xpath = f'//*[@id="J_ShopSearchResult"]/div/div[3]/div[{row}]/dl[{position}]/dd[2]/div/div[1]'
            img_xpath = f'//*[@id="J_ShopSearchResult"]/div/div[3]/div[{row}]/dl[{position}]/dt/a/img'

            title_element = driver.find_element(By.XPATH, title_xpath)
            price_element = driver.find_element(By.XPATH, price_xpath)
            img_element = driver.find_element(By.XPATH, img_xpath)

            title = title_element.text
            price = price_element.text
            img_url = img_element.get_attribute('src')

            if title:
                if not img_url.startswith(('http://', 'https://')):
                    img_url = 'https:' + img_url  # 补全协议部分

                item_list.append({'title': title, 'price': price, 'img_url': img_url})

展开
收起
游客uufeafn5abzy6 2023-08-23 17:08:15 218 分享 版权
1 条回答
写回答
取消 提交回答
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    可以尝试使用正则表达式来匹配价格,举个例子:

    import re
    
    # 定义匹配规则
    pattern = r'[\u4e00-\u9fa5]+元'
    
    # 爬取商品价格
    html = requests.get('https://s.taobao.com/search?q=商品名称')
    soup = BeautifulSoup(html.content, 'html.parser')
    items = soup.select('.J_MouserOnverReq')
    
    # 提取价格
    for item in items:
        price = item.select_one('.J_CalcPrice').text
        price = re.findall(pattern, price)[0]
        print(price)
    
    2023-08-23 19:28:51
    赞同 展开评论
问答地址: