You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

爬取pik.ru仓储页面后内容丢失问题排查求助

爬取页面内容丢失问题排查求助

我尝试爬取网站 https://www.pik.ru/search/vangarden/storehouse,已成功获取页面HTML并写入文件,但后续读取或解析时大量信息丢失。

内容对比示例

  • 页面实际内容(截图1,未展示全部):页面实际内容截图
  • 操作后获取的内容(截图2):操作后获取内容截图

请帮忙排查操作中的问题,谢谢!

我的代码

import requests
from bs4 import BeautifulSoup
import undetected_chromedriver
import time
import os

url = 'https://www.pik.ru/search/storehouse'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'
}

proxies = {
    'https': 'http://146.247.105.71:4827'
}


def download_pages_objects(url):
    if os.path.isfile(r'C:\Users\kraz1\OneDrive\Рабочий стол\Антон\python\парсинг\кладовочная\pik_links.txt') == True:
        os.remove(
            r'C:\Users\kraz1\OneDrive\Рабочий стол\Антон\python\парсинг\кладовочная\pik_links.txt')

    list_links = []
    req = requests.get(url, headers=headers, proxies=proxies)
    soup = BeautifulSoup(req.text, "lxml")

    for i in soup.find_all("a", class_="styles__ProjectCard-uyo9w7-0 friPgx"):
        list_links.append('https://www.pik.ru'+i.get('href')+'\n')

    with open(r'C:\Users\kraz1\OneDrive\Рабочий стол\Антон\python\парсинг\кладовочная\pik_links.txt', 'a') as file:
        for link in list_links:
            file.write(link)


def get_list_objects_links(url):
    download_pages_objects(url)

    list_of_links = []
    with open(r'C:\Users\kraz1\OneDrive\Рабочий стол\Антон\python\парсинг\кладовочная\pik_links.txt', 'r') as file:
        for item in file:
            list_of_links.append(item)

    return list_of_links


list_links = get_list_objects_links(url)

count = 0
for link in list_links:
    req = requests.get(link.replace('\n', ''),
                       headers=headers, proxies=proxies)

    with open('1.html', 'w') as file:
        file.write(req.text)

    soup = BeautifulSoup(req.text, 'lxml')
    print(req.text, '\n\n\n')
    print(soup.find_all('div', ''), '\n\n\n')

    with open('1.html', 'r') as file:
        scr = file.read()

    print(scr, '\n\n\n')
    soup = BeautifulSoup(scr, 'lxml')
    print(soup)

    count += 1
    if count == 1:
        break

已尝试的解决方法

  • 不写入文件直接操作
  • 更换过lxml、xml、html.parser解析器
    但均无效果(或操作有误)

内容的提问来源于stack exchange,提问作者POPIF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:53:23