Con python reptil información BeautifulSoup para abastecerse dos artículos de noticias

 

Stocks en Python, el primer uso de los datos recogidos, utilizando el siguiente ejemplo para brevemente rastreo prensa

La adquisición de datos

1. Abrir fue designado sitios de información financiera, como el de China Tiempos de Valores: http://stock.stcn.com/dapan/index.shtml

2. Se recomienda el navegador Chrome para analizar la estructura del sitio, especifique una lista de artículos a ser extraído

 

 El análisis de los caminos disponibles:

<Head>, <body>, <div> '', <div> ''' .... <li> <a>

 Aquí ruta más profundo, e implicar posicionamiento múltiple, de verificación si el uso de encontrar sólo una, sino muchas veces con find_all puede consultar, el uso find_all más razonable.

 Div anidada, con el fin de extraer el contenido de la capa inferior, hay varios métodos comúnmente utilizados en este ejemplo:

Puede durar name = 'ul', attrs = { 'clase': "news_list2"}, puede ser usada nombre = 'div', attrs = { 'clase': "clearfix contenido"}

etiqueta Supongamos = resultado de la búsqueda de la primera capa

Una vez más el posicionamiento de encontrar el segundo artículo capa sub_tag en etiqueta

Si la página de datos, el artículo es los métodos de extracción simples, tales como:

soup.find_all ( "a") # busca todos los nodos de un dato

  Pero los resultados son a menudo insatisfactorios, ya que a menudo se encuentran otro tipo de publicidad o recomendar una lista de artículos, show venir. O si es necesario la detección de la enfermedad, o hacer coincidir de manera regular



El código de ejemplo

1. Crear un nuevo archivo .py BS introducidas

de bs4 BeautifulSoup importación 
solicitudes de importación 
importar el tiempo 
JSON importación 

url = 'http://stock.stcn.com/dapan/index.shtml' 
wb_data = requests.post (url) 
Sopa = BeautifulSoup (wb_data.content, 'lxml')

 

2. bucle for nodo artículos de posicionamiento  

La redacción tiene ventajas:

 - Evitar las variables temporales con más que el aumento si, para ahorrar espacio de memoria para abrir. Incluso si el <DIV> es una pluralidad de anidada

 - Cuando se utiliza un doble subclases de consulta para el posicionamiento, sino que también ahorra espacio iteraciones

 - se indique lo contrario, en este momento, aunque el único camino, pero con diferente find_all se debe a que se considera para encontrar los resultados devueltos por la consulta no es propicio para encontrar una operación posterior, para una mayor comodidad de bucle anidado subsecuente

para la etiqueta en soup.find_all (name = ' ul ' , attrs = { ' clase ' : " news_list2 " }):
     para sub en tag.find_all ( " un " ):
         impresión (sub)

 

3. Mostrar resultados:

   

 

 

A continuación, filtrar los datos, aunque sólo sea para retener el título del artículo

Tag en soup.find_all para (nombre = 'UL', attrs = { 'clase': "news_list2"}): 
	para los sub en tag.find_all ( "A"): 
		Imprimir (sub.string) # restos como sub niño etiqueta de objeto, la información de cadena de caracteres utilizado para extraer la cuerda

    

 

Supongo que te gusta

Origin www.cnblogs.com/nerocm/p/12501972.html
Recomendado
Clasificación