Directorio de artículos
Biblioteca de reptiles
Hay bibliotecas de rastreadores con las que me he puesto en contacto hasta ahora scrapy
, requests + Beautifulsoup or etree
así como con esta nueva selenium
. No sé la diferencia esencial, pero por la forma de llamar, se puede clasificar de la siguiente manera:
scrapy
Al implementar la herencia de clases, la acción de rastreo se realiza reescribiendo sus propios métodos. Ventajas: rápido, muy rápido; Desventajas: difícil de depurar, no es fácil de escribir; Situación aplicable: grandes proyectos de rastreadoresselenium
La idea en sí es movilizar el propio navegador para que funcione, y cargará varias representaciones de secuencias de comandos, etc., por lo que sus desventajas son muy obvias: lento, muy lento, muy lento. Pero solo porque se manejará toda la información transmitida y al movilizar la enorme estructura del navegador,selenium
se puede completar cualquier operación humana, incluido hacer clic e ingresar para cargar páginas web dinámicas. Situación aplicable: la estructura de la página web es modificable y es necesario interactuar con cierta información para obtenerla.requests + ()
A menudo se usa cuando se escriben pequeños experimentos, su gramática es relativamente simple y la lógica es fácil de resolver. En comparación con los dos anteriores,requests
el paquete es adecuado para páginas web estáticas. No es tanselenium
flexible como es, pero es más rápido que él. Por otro lado, es más lento que élscrapy
pero fácil de escribir. En términos generales, es una biblioteca adecuada para escribir pequeños experimentos.
Los experimentos específicos pueden referirse a esta página .
Esta tarea
- artículo de raíz: predicción de la estructura de proteínas de alta precisión con Alphafold Un artículo que ha tenido un impacto relativamente grande en Nature en los últimos años, el núcleo general es la aplicación del aprendizaje profundo en la estructura de las proteínas biológicas.
- Descripción de la tarea: Tomar el documento raíz como origen, buscar hacia arriba (refiriéndose a los documentos del documento raíz) varias generaciones de documentos y hacia abajo (Referencia) varias generaciones de documentos. Es esencialmente una forma similar a una estructura de árbol, pero dado que el documento raíz es el punto de partida, los documentos en el mismo nivel pueden tener referencias mutuas para formar un circuito cerrado, por lo que no es un árbol estricto de la definición de teoría de grafos. Pero al fin y al cabo, es ingeniería, y las matemáticas no tienen por qué ser tan rigurosas, expresar ideas es lo más importante.
- Rastreo de sitios web: no se recomienda que elija Web Of Science para rastrear, porque su anti-rastreo es muy bueno y varios espacios se llenan muy rápidamente. Cuando lo estaba haciendo, un puerto que estaba disponible el 17 de marzo se bloqueó el 9 de abril. Le sugiero que busque otros sitios web. No sé qué hacer. Después de todo, solo hay unas pocas páginas web de búsqueda de literatura a gran escala. Pruébelo usted mismo y lo sabrá.
situación específica
La página web que quiero rastrear se caracteriza por el hecho de que cada artículo no necesariamente enumera la literatura o las citas en el sitio web. Si tiene suerte o es famoso, puede poner su Referencia y Citado por en la página web para verlos. La mayoría de ellos no sé Los pequeños artículos famosos generalmente no tienen este tipo de tratamiento. Esta es también una deficiencia de un sitio web pequeño: aunque es fácil de rastrear, tiene un mantenimiento relativamente pobre. Algunos de los problemas encontrados al escalar se resumen aquí:
- Asegúrese de usar oraciones cuando envíe cualquier solicitud y busque en el sitio web, de lo contrario, más de la mitad del rastreo será causado por una convulsión momentánea, o la página no se actualizará a tiempo debido a la velocidad de la red y causará un bloqueo, y no habrá donde
selenium
llorarwebdriver
.(get)
(find_element)
try...except
driver
XPath y CSS son compatibles al ubicar ciertos datos, pero debo recordar una cosa, y creo que es muy malo al diseñar y nombrar. Hay dos métodos:find_element
y , quefind_elements
puede entenderse como la diferenciascrapy shell
entre y . El primero toma el primer elemento recuperado que cumple con los requisitos de recuperación y el segundo devuelve todos los elementos encontrados. Realmente no es bueno usar solo one s para distinguir, y debe prestar atención al realizar la depuración.response
extract_first
extract
- ! ! ¡importante! ! Al ubicar por Xpath, si se encuentra el Xpath haciendo clic derecho en f12 -> Copiar -> Copiar XPath, generalmente tiene algo similar a la posición en la matriz, como [3] y [1 en él. ]
//*[@id="b_results"]/li[3]/div[1]/h2/a
. No recomiendo indexar de esta manera, especialmente cuando tus páginas web son dinámicas y hay más o menos diferencias de estructura entre diferentes páginas web, es muy probable que no puedas recuperar o recuperar los elementos de los que quieres la situación. Por lo tanto, se recomienda que elimine estas cosas cuando las tome en el primer paso y seleccioneclass id
la información que desea usar para la nueva evaluación.
algunos métodos
driver
Hay varios métodos de recuperación, como find_element_by_xpath
o find_element_by_css
, pero al llamar, avisará que estos no deben usarse. Use este find_element(by=,value=)
, y luego llame By.XPATH
para llamar a la misma función. Mi evaluación es quitarse los pantalones y tirarse un pedo. Problemas.
Escribiré sobre algunas ideas nuevas más tarde, hasta que se envíe el código fuente.
el código
La tarea de nuestro grupo se enseñará este martes, tengan paciencia conmigo por el momento y compartan el código fuente después de entregar la tarea\doge