El uso de Python arrastrándose OPGG la Liga de Héroes y seleccionar la información de tasa de ganar

En primer lugar, el análisis del contenido del sitio web

La página web que se arrastra a opgg, disponible en: "  http://www.op.gg/champion/statistics "

Como puede verse a partir de la interfaz de web, detalla el lado derecho héroe al ejemplo Garen, el porcentaje de victorias del 53,84%, se seleccionó 16,99%, se utiliza una única ubicación

Ahora bien, el análisis de la página web de código fuente (botón derecho del ratón se puede encontrar en el menú para ver el código fuente de la página). Mediante la búsqueda de "53,84%" para localizar rápidamente la posición donde Garen

Como puede verse por el código, el nombre del héroe, y seleccionar las tasas de ganar son etiquetas td, y cada mensaje de un héroe etiqueta tr, td tr etiqueta es la etiqueta principal, tr etiqueta tbody es la etiqueta principal.

etiqueta tbody para encontrar

Hay cinco etiqueta etiqueta tbody (etiqueta de inicio final son tbody "tbody", de modo que un total de 10 "tbody"), el campo de análisis de contenido, son, campo de juego, solo, ADC, información auxiliar sola

Más que sólo esta parte del héroe como un ejemplo, tenemos que encontrar primero la pestaña tbody, a continuación, busque la etiqueta tr (cada etiqueta tr es un héroe de la información), y luego obtener más información de la sub-sello de la etiqueta td héroe

En segundo lugar, la operación de rastreo

El rastreo de contenido web -> extraer la información requerida -> Salida de datos héroe

getHTMLText (URL) -> fillHeroInformation (hlist, html) -> printHeroInformation (hlist)

getHTMLText contenido (URL) devuelve la función html en el enlace url

fillHeroInformation (hlist, html) es una función de la información deseada extraída lista html almacenado hlist

printHeroInformation (hlist) es la función de salida de información de la lista hlist héroe

En tercer lugar, la aplicación del código

1 función, getHTMLText (url)

Copiar el código
1 def getHTMLText (url): # declaración informativa documento html
2 intento:
3 r = requests.get (url, timeout = 30)
4 r.raise_for_status ()
5 r.encoding = r.apparent_encoding
6 retorno R.TEXT # contenido de retorno html
7, excepto:
8 retorno ""
Copiar el código

función 2, fillHeroInformation (hlist, html)

En un ejemplo un tr etiqueta, tr etiqueta de la etiqueta td interior 7, la cuarta td etiqueta valor de atributo "Champion-index-table__name" div nombre de contenido tag Hero, la etiqueta td contenido quinta ganadora, el contenido de la etiqueta 6 td se selecciona la velocidad, esta información se almacena en la lista hlist

Copiar el código
fillHeroInformation 1 def (hlist, html): # la lista héroe de información en hlist
2 sopa = BeautifulSoup (html, "html.parser")
3 para pa en soup.find (name = "tbody", attrs = "TabItem campeón de la tendencia-tier-TOP") los niños :. # hijo de desplazamiento etiquetas de la etiqueta tbody sola
4 si isinstance (tr, bs4.element.Tag): # tr se determina si el tipo de etiqueta, eliminar líneas en blanco
5 tds = tr ( 'td') # Find td tr etiqueta de la etiqueta bajo
6 heroname = tds [3] .find (attrs = "Champion-index-table__name"). String # 英雄 名
7 ratio de ganancias = tds [4] .string # ganar
8 pickRate = TDS [5] .string # seleccionar la velocidad
9 hlist.append ([heroname, ratio de ganancias, pickRate]) # información añadir a la lista de héroe hlist
Copiar el código

3 función, printHeroInformation (hlist)

1 def printHeroInformation (hlist): Información # salida de lista hlist
2 print ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato ( "nombre de héroe", "ganadora", "tasa de selección", "Posición "))
3 para i in range (len (hlist)):
4 i = hlist [i]
5 print ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato (i [0], i [1], i [2],"上 单 "))

4 función, main ()

dirección del sitio Web asignado a la URL, crear una nueva lista hlist, llame a la función getHTMLText (URL) para obtener la información del documento HTML, utilice fillHeroInformation (hlist, html) información de la función en la lista de héroe hlist, y luego usar printHeroInformation (hlist) salida de la función

Copiar el código
1 def main ():
2 url = "http://www.op.gg/champion/statistics"
3 hList = []
4 = html getHTMLText (url) # get html información del documento
hlist 5 fillHeroInformation (hlist, html) # la información de lista héroe está escrito
6 printHeroInformation (hlist) de salida #
Copiar el código

En cuarto lugar, los resultados demuestran

1, la información de la interfaz web

2, los resultados de rastreo

Cinco código completo

Copiar el código
 1 solicitudes de importación
 2 import re
 3 bs4 importación
 4 de BS4 BeautifulSoup importación
 5 
 6 def getHTMLText (url): # declaración informativa documento html
 7 intento:
 8 r = requests.get (url, timeout = 30)
 9 r.raise_for_status ()
10 r.encoding = r.apparent_encoding
11 de retorno R.TEXT # contenido de retorno html
12, excepto:
13 de retorno ""
14 
fillHeroInformation 15 def (hlist, html): # la lista héroe de información en hlist
16 sopa = BeautifulSoup (html, "html.parser")
17 para pa en soup.find (name = "tbody", attrs = "TabItem campeón de la tendencia-tier-TOP") los niños :. # hijo de desplazamiento etiquetas de la etiqueta tbody sola
18 si isinstance (tr, bs4.element.Tag): # tr se determina si el tipo de etiqueta, eliminar líneas en blanco
19 tds = tr ( 'td') # Find td tr etiqueta de la etiqueta bajo
20 heroname = tds [3] .find (attrs = "Champion-index-table__name"). String # 英雄 名
21 ratio de ganancias = tds [4] .string # ganar
22 pickRate = TDS [5] .string # seleccionar la velocidad
23 hlist.append ([heroname, ratio de ganancias, pickRate]) # información añadir a la lista de héroe hlist
24 
25 def printHeroInformation (hlist): Información # salida de lista hlist
26 de impresión ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato ( "nombre de héroe", "ganadora", "tasa de selección", "Posición "))
27 para i in range (len (hlist)):
28 i = hlist [i]
29 de impresión ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato (i [0], i [1], i [2],"上 单 "))
30 
31 def main ():
32 url = "http://www.op.gg/champion/statistics"
33 hList = []
34 html = getHTMLText (url) # get html información del documento
hlist 35 fillHeroInformation (hlist, html) # la información de lista héroe está escrito
36 printHeroInformation (hlist) de salida #
37 
38 main ()
Copiar el código

Si necesita campo de juego rastreo, sola, ADC o información auxiliar, sólo es necesario modificar

fillHeroInformation (hlist, html) función en
tr en soup.find (name = "tbody", attrs = "TabItem campeón de la tendencia-tier-TOP"). declaración de los niños, modificar los valores de las propiedades attrs
" TabItem campeón de la tendencia-tier-jungle", " TabItem campeón de la tendencia-tier-MID "" TabItem campeón de la tendencia-tier-ADC "" TabItem campeón de la tendencia-tier-SUPPORT"等即可
Mi vida es limitada, el conocimiento no tiene límites

En primer lugar, el análisis del contenido del sitio web

La página web que se arrastra a opgg, disponible en: "  http://www.op.gg/champion/statistics "

Como puede verse a partir de la interfaz de web, detalla el lado derecho héroe al ejemplo Garen, el porcentaje de victorias del 53,84%, se seleccionó 16,99%, se utiliza una única ubicación

Ahora bien, el análisis de la página web de código fuente (botón derecho del ratón se puede encontrar en el menú para ver el código fuente de la página). Mediante la búsqueda de "53,84%" para localizar rápidamente la posición donde Garen

Como puede verse por el código, el nombre del héroe, y seleccionar las tasas de ganar son etiquetas td, y cada mensaje de un héroe etiqueta tr, td tr etiqueta es la etiqueta principal, tr etiqueta tbody es la etiqueta principal.

etiqueta tbody para encontrar

Hay cinco etiqueta etiqueta tbody (etiqueta de inicio final son tbody "tbody", de modo que un total de 10 "tbody"), el campo de análisis de contenido, son, campo de juego, solo, ADC, información auxiliar sola

Más que sólo esta parte del héroe como un ejemplo, tenemos que encontrar primero la pestaña tbody, a continuación, busque la etiqueta tr (cada etiqueta tr es un héroe de la información), y luego obtener más información de la sub-sello de la etiqueta td héroe

En segundo lugar, la operación de rastreo

El rastreo de contenido web -> extraer la información requerida -> Salida de datos héroe

getHTMLText (URL) -> fillHeroInformation (hlist, html) -> printHeroInformation (hlist)

getHTMLText contenido (URL) devuelve la función html en el enlace url

fillHeroInformation (hlist, html) es una función de la información deseada extraída lista html almacenado hlist

printHeroInformation (hlist) es la función de salida de información de la lista hlist héroe

En tercer lugar, la aplicación del código

1 función, getHTMLText (url)

Copiar el código
1 def getHTMLText (url): # declaración informativa documento html
2 intento:
3 r = requests.get (url, timeout = 30)
4 r.raise_for_status ()
5 r.encoding = r.apparent_encoding
6 retorno R.TEXT # contenido de retorno html
7, excepto:
8 retorno ""
Copiar el código

función 2, fillHeroInformation (hlist, html)

En un ejemplo un tr etiqueta, tr etiqueta de la etiqueta td interior 7, la cuarta td etiqueta valor de atributo "Champion-index-table__name" div nombre de contenido tag Hero, la etiqueta td contenido quinta ganadora, el contenido de la etiqueta 6 td se selecciona la velocidad, esta información se almacena en la lista hlist

Copiar el código
fillHeroInformation 1 def (hlist, html): # la lista héroe de información en hlist
2 sopa = BeautifulSoup (html, "html.parser")
3 para pa en soup.find (name = "tbody", attrs = "TabItem campeón de la tendencia-tier-TOP") los niños :. # hijo de desplazamiento etiquetas de la etiqueta tbody sola
4 si isinstance (tr, bs4.element.Tag): # tr se determina si el tipo de etiqueta, eliminar líneas en blanco
5 tds = tr ( 'td') # Find td tr etiqueta de la etiqueta bajo
6 heroname = tds [3] .find (attrs = "Champion-index-table__name"). String # 英雄 名
7 ratio de ganancias = tds [4] .string # ganar
8 pickRate = TDS [5] .string # seleccionar la velocidad
9 hlist.append ([heroname, ratio de ganancias, pickRate]) # información añadir a la lista de héroe hlist
Copiar el código

3 función, printHeroInformation (hlist)

1 def printHeroInformation (hlist): Información # salida de lista hlist
2 print ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato ( "nombre de héroe", "ganadora", "tasa de selección", "Posición "))
3 para i in range (len (hlist)):
4 i = hlist [i]
5 print ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato (i [0], i [1], i [2],"上 单 "))

4 función, main ()

dirección del sitio Web asignado a la URL, crear una nueva lista hlist, llame a la función getHTMLText (URL) para obtener la información del documento HTML, utilice fillHeroInformation (hlist, html) información de la función en la lista de héroe hlist, y luego usar printHeroInformation (hlist) salida de la función

Copiar el código
1 def main ():
2 url = "http://www.op.gg/champion/statistics"
3 hList = []
4 = html getHTMLText (url) # get html información del documento
hlist 5 fillHeroInformation (hlist, html) # la información de lista héroe está escrito
6 printHeroInformation (hlist) de salida #
Copiar el código

En cuarto lugar, los resultados demuestran

1, la información de la interfaz web

2, los resultados de rastreo

Cinco código completo

Copiar el código
 1 solicitudes de importación
 2 import re
 3 bs4 importación
 4 de BS4 BeautifulSoup importación
 5 
 6 def getHTMLText (url): # declaración informativa documento html
 7 intento:
 8 r = requests.get (url, timeout = 30)
 9 r.raise_for_status ()
10 r.encoding = r.apparent_encoding
11 de retorno R.TEXT # contenido de retorno html
12, excepto:
13 de retorno ""
14 
fillHeroInformation 15 def (hlist, html): # la lista héroe de información en hlist
16 sopa = BeautifulSoup (html, "html.parser")
17 para pa en soup.find (name = "tbody", attrs = "TabItem campeón de la tendencia-tier-TOP") los niños :. # hijo de desplazamiento etiquetas de la etiqueta tbody sola
18 si isinstance (tr, bs4.element.Tag): # tr se determina si el tipo de etiqueta, eliminar líneas en blanco
19 tds = tr ( 'td') # Find td tr etiqueta de la etiqueta bajo
20 heroname = tds [3] .find (attrs = "Champion-index-table__name"). String # 英雄 名
21 ratio de ganancias = tds [4] .string # ganar
22 pickRate = TDS [5] .string # seleccionar la velocidad
23 hlist.append ([heroname, ratio de ganancias, pickRate]) # información añadir a la lista de héroe hlist
24 
25 def printHeroInformation (hlist): Información # salida de lista hlist
26 de impresión ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato ( "nombre de héroe", "ganadora", "tasa de selección", "Posición "))
27 para i in range (len (hlist)):
28 i = hlist [i]
29 de impresión ( "{: ^ 20} \ t {: ^ 20} \ t {: ^ 20} \ t {: ^ 20}". Formato (i [0], i [1], i [2],"上 单 "))
30 
31 def main ():
32 url = "http://www.op.gg/champion/statistics"
33 hList = []
34 html = getHTMLText (url) # get html información del documento
hlist 35 fillHeroInformation (hlist, html) # la información de lista héroe está escrito
36 printHeroInformation (hlist) de salida #
37 
38 main ()
Copiar el código

Si necesita campo de juego rastreo, sola, ADC o información auxiliar, sólo es necesario modificar

fillHeroInformation (hlist, html) función en
tr en soup.find (name = "tbody", attrs = "TabItem campeón de la tendencia-tier-TOP"). declaración de los niños, modificar los valores de las propiedades attrs
" TabItem campeón de la tendencia-tier-jungle", " TabItem campeón de la tendencia-tier-MID "" TabItem campeón de la tendencia-tier-ADC "" TabItem campeón de la tendencia-tier-SUPPORT"等即可

Supongo que te gusta

Origin www.cnblogs.com/7758520lzy/p/12499626.html
Recomendado
Clasificación