Implementación del código de archivo PDF de descarga del rastreador por lotes de Python

El trasfondo de este artículo es: un profesor con buena relación con la universidad me preguntó si podía descargar los archivos pdf correspondientes a las 1000 URL de hipervínculos en Excel. Aunque puede hacer clic manualmente para descargar uno por uno, esto requiere demasiado trabajo y mucho tiempo. Recordé mi experiencia anterior con los reptiles, analicé la viabilidad para el maestro y luego la practiqué.
  
Inesperadamente, encontré dificultades al principio y los hipervínculos en Excel se mostraban directamente en chino cuando se leían en Python. Entonces, el primer paso es ordenar las URL correspondientes a los hipervínculos y luego usar Python para rastrear el pdf de las URL correspondientes. El primer paso se describió en detalle en el artículo anterior. Este artículo comparte el segundo paso de la descarga de archivos del rastreador por lotes y una introducción detallada al código.


  

1. Leer datos

  
Primero lea los datos, el código es el siguiente:

import os 
import numpy as np 
import pandas as pd 

#设置文件存放的地址
os.chdir(r'F:\老师\下载文件')
#读取数据
link_date = pd.read_csv('import.csv',encoding='gbk')
link_date.head(2)

obtuve la respuesta:
  
inserte la descripción de la imagen aquí

  
  

2. Simule la URL de inicio de sesión y haga clic en el botón para descargar el pdf.

  
Luego simule usar el navegador Chrome para iniciar sesión, abra la primera URL con el código y simule que una persona hace clic para descargar. El código específico es el siguiente:

import json
import time
import random
from captcha import * 
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import wait
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
#导入库

print('程序开始时间:', datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
#模拟使用Chrome浏览器登陆
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")  
driver =  webdriver.Chrome(options=options)
driver.implicitly_wait(10)
#打开搜索页
driver.get(link_date['网址'][0])
time.sleep(20)  # 暂停20s
#点击下载pdf的按钮
driver.find_element_by_xpath('//*[@id="mdiv"]/div[3]/div[2]/a').click()

La URL abierta es como se muestra en la figura siguiente, haga clic con el botón izquierdo en los tres puntos en el cuadro rojo en el extremo derecho, haga clic con el botón izquierdo en [Más herramientas], mueva el mouse a [Herramientas de desarrollador] y haga clic con el botón izquierdo, podrá ver la barra de visualización. a la derecha de la figura siguiente. Luego haga clic izquierdo en la flecha en el cuadro rojo, mueva el mouse al pdf en el cuadro rojo más a la izquierda y haga clic izquierdo, podrá ver el módulo correspondiente al href en el cuadro rojo de la derecha. Haga clic derecho en el módulo, haga clic izquierdo en [Copiar] y luego haga clic izquierdo en [Copiar Xpath] para obtener la ruta en driver.find_element_by_xpath.
  
inserte la descripción de la imagen aquí

  
  

3. Ciclo de escritura para descargar todos los archivos en lotes.

  
Escriba un bucle para descargar todos los archivos en lotes. La forma más sencilla es recorrer todas las URL y simular hacer clic para descargar el PDF. El código es el siguiente:

for i in range(0,1000):
    print(i)
    #打开搜索页
    driver.get(link_date['超链接'][i])
    time.sleep(20)  # 暂停20s
    driver.find_element_by_xpath('//*[@id="mdiv"]/div[3]/div[2]/a').click()

Pero hay un problema con este código: una vez que hay una URL inesperada, es fácil interrumpir el código y se informará el siguiente error:
  
inserte la descripción de la imagen aquí

  
En este momento, es necesario verificar manualmente qué archivo se ha descargado y luego ajustar el valor en el rango para descargar. Si no desea mirar el código, puede escribirlo en modo de prueba y registrar las etiquetas descargadas en el laboratorio. Si encuentra un accidente, salte directamente a la siguiente URL y, después de la descarga completa, clasifique qué URL no se ha descargado. Las oraciones específicas son las siguientes:

lab = []
for i in range(1, 1000):
    try:
        print(i)
        #打开搜索页
        driver.get(link_date['网址'][i])
        time.sleep(20)  # 暂停20s
        driver.find_element_by_xpath('//*[@id="mdiv"]/div[3]/div[2]/a').click()
        lab.append(i)
    except:
        pass

El resultado final de la descarga es el siguiente:
  
inserte la descripción de la imagen aquí

  
Hasta ahora, se ha explicado la implementación del código del rastreador por lotes de Python que descarga archivos PDF y los estudiantes interesados ​​pueden implementar la imagen por sí mismos.
  
[ Acceso gratuito al grupo por tiempo limitado ] El grupo proporciona información de reclutamiento relacionada con el aprendizaje de Python, el juego con Python, el modelado de control de riesgos, la inteligencia artificial y el análisis de datos, excelentes artículos, videos de aprendizaje y también puede intercambiar problemas relacionados encontrados en el aprendizaje y trabajar. Los amigos que lo necesiten pueden agregar el ID de WeChat 19967879837 y agregar tiempo para anotar los grupos a los que desean unirse, como el modelado de control de riesgos.
  
Quizás te interese:
Dibujar a Pikachu en PythonUsar
Python para dibujar nubes de palabrasReconocimiento
facial de Python: eres el único en mis ojosPython
dibuja un hermoso mapa de cielo estrellado (hermoso fondo)
Usa la biblioteca py2neo en Python para operar neo4j y crear un mapa de asociaciónPython
Colección de código fuente de confesión romántica (amor, rosa, muro de fotos, confesión bajo las estrellas)

Supongo que te gusta

Origin blog.csdn.net/qq_32532663/article/details/132395715
Recomendado
Clasificación