Cómo python + pandas realiza la recopilación continua de puntos de interrupción de páginas web

Tabla de contenido

1. Escena de combate real

2. Puntos de conocimiento

sintaxis basica de python

Archivo Python leer y escribir

procesamiento de datos pandas

captura continua web

3. Combate real de novatos

La idea básica de la colección continua de puntos de interrupción de página de lista

la idea basica

Realización de la recopilación continua de puntos de interrupción en las páginas de lista de páginas web

Los pandas guardan el archivo csv de datos

Ideas de recopilación de puntos de interrupción de la página de detalles

la idea basica

Realización de código para la recopilación continua de puntos de interrupción en la página de detalles de la página web

Los pandas guardan el archivo csv de datos

resultado de la operación

resultado de ejecución

Captura capturas de pantalla continuamente


1. Escena de combate real

Cómo python + pandas realiza la recopilación continua de puntos de interrupción de páginas web

2. Puntos de conocimiento

sintaxis basica de python

Archivo Python leer y escribir

procesamiento de datos pandas

captura continua web

3. Combate real de novatos

La idea básica de la colección continua de puntos de interrupción de página de lista

la idea basica

Cuando se recopila la página de la lista, los datos recopilados se guardan en un archivo y, cada vez que se recopilan, la página recopilada la última vez se confirma al leer el archivo.

Realización de la recopilación continua de puntos de interrupción en las páginas de lista de páginas web

def __init__(self):
    # 初始化日志
    self.init_log()

    # 默认采集的上一页为第 1 页
    start_page = self.PAGE_START

    list_file_path = self.fileManger.get_data_file_path(self.list_data_file)
    if os.path.isfile(list_file_path):
        # 读取列表文件, 确定上一次采集的第几页, 以支持连续采集
        self.logger.info("数据文件存在")
        self.data_file_exist = True
        # 计算从第几页开始采集
        list_df = pd.read_csv(list_file_path, usecols=['第几页'], encoding=self.encoding)
        max_page = pd.DataFrame(list_df[2:]).max()
        start_page = int(max_page) + 1

    print("采集页面范围: 第[%s]页至第[%s]页" % (start_page, start_page + self.PAGE_STEP - 1))

    for page in range(start_page, start_page + self.PAGE_STEP):
        # 初始化采集链接
        url = self.target_url.replace("p1", "p" + str(page))
        # 构造采集对象
        url_item = UrlItem(url=url, page=page)
        self.url_items.append(url_item)

Los pandas guardan el archivo csv de datos

def save_to_file(self, data, cols):
    # 保存到文件
    file_path = self.fileManger.get_data_file_path(self.list_data_file)

    # 初始化数据
    frame = pd.DataFrame(data)
    if not self.data_file_exist:
        # 第一次写入带上列表头,原文件清空
        frame.columns = cols
        frame.to_csv(file_path, encoding=self.encoding, index=None)
        self.data_file_exist = True  # 写入后更新数据文件状态
    else:
        # 后续不写如列表头,追加写入
        frame.to_csv(file_path, mode="a", encoding=self.encoding, index=None, header=0)

    self.logger.debug("文件保存完成")

Ideas de recopilación de puntos de interrupción de la página de detalles

la idea basica

Cuando se recopila la página de detalles, los datos recopilados se guardan en un archivo. Para evitar la recopilación repetida, cada vez que recopile, confirme si el enlace de recopilación está en el archivo de datos recopilados. Si es así, omita la recopilación y, si no lo es, ejecutar la colección

Realización de código para la recopilación continua de puntos de interrupción en la página de detalles de la página web

def __init__(self):
    # 初始化日志
    self.init_log()

    # 从列表文件读取等待采集的链接
    list_file_path = self.fileManger.get_data_file_path(self.list_data_file)
    list_df = pd.read_csv(list_file_path, encoding=self.encoding)
    self.url_items = list_df.values  # 初始化待采集链接数组

    detail_file_path = self.fileManger.get_data_file_path(self.detail_data_file)
    if os.path.isfile(detail_file_path):
        # 从详情文件读取已采集的信息
        self.data_file_exist = True
        detail_df = pd.read_csv(detail_file_path, encoding=self.encoding)
        self.detail_df = detail_df

Los pandas guardan el archivo csv de datos

def save_to_detail_file(self, data, cols):
    # 保存到详情文件
    file_path = self.fileManger.get_data_file_path(self.detail_data_file)

    # 初始化数据
    frame = pd.DataFrame(data)

    if not self.data_file_exist:
        # 第一次写入带上列表头,原文件清空
        frame.columns = cols
        frame.to_csv(file_path, encoding=self.encoding, index=None)
        self.data_file_exist = True  # 写入后更新数据文件状态
    else:
        # 后续不写如列表头,追加写入
        frame.to_csv(file_path, mode="a", encoding=self.encoding, index=None, header=0)

    self.logger.debug("文件保存完成")

resultado de la operación

resultado de ejecución

Rango de páginas de colección: página [16] a página [20]

100%|██████████| 5/5 [00:14<00:00, 2,91 s/it]

pitón versión 3.10.4

Captura capturas de pantalla continuamente


enlace de recursos

Código fuente-python+pandas cómo realizar una recopilación continua de puntos de interrupción en páginas web-Python Documentation Resources-CSDN Download
 

Combate real de novatos, ¡sigue aprendiendo!

Supongo que te gusta

Origin blog.csdn.net/qq_39816613/article/details/128619530
Recomendado
Clasificación