Principes de base du grattage Python

Utilisation du module de requêtes de Python et de Beautiful Soup Les bases des bases du grattage

Obtenir du contenu (principalement HTML) sur le Web

--Code pour obtenir et afficher tout le HTML de l'URL:

Obtenir du HTML


import requests

url = "https://hogehoge12345.html"

response = requests.get(url)
response.encoding = response.apparent_encoding

print(response.text)

-Utilisez `` requests.get () '' pour envoyer une requête HTTP à l'URL de l'argument et utilisez la réponse HTTP renvoyée par le serveur comme valeur de retour. -Utilisez apparent_encoding pour éviter autant que possible les caractères déformés. ・ Response.text est le contenu du contenu acquis ・ Si vous pouvez accéder par URL, vous pouvez également obtenir des fichiers CSV, des fichiers image, des fichiers vidéo, etc. (le code est le même que ci-dessus).

1 seconde d'intervalle


import time

time.sleep(1)

-Lors de l'acquisition successive de HTTP à partir de plusieurs URL, laissez un intervalle d'au moins 1 seconde afin de ne pas déranger le site de l'autre partie. ・ En premier lieu, il est nécessaire de confirmer les restrictions d'utilisation, par exemple si le site peut être consulté par programme ou si le contenu publié est converti en données.

Enregistrer le contenu Web récupéré dans un fichier


response = requests.get(url)
response.encoding = response.apparent_encoding

exam_html = response.text

with open('exam.html', mode='w', encoding='utf-8') as fp:
    fp.write(exam_html)

Analyse HTML

python


import requests
from bs4 import BeautifulSoup

url = "https://hogehoge12345.html"
response = requests.get(url)
response.encoding = response.apparent_encoding

#Analyser le HTML
bs = BeautifulSoup(response.text, 'html.parser')

#Extraire la pièce délimitée par la balise ul
ul_tag = bs.find('ul')

#Extraire la balise a dans la balise ul
for a_tag  in ul_tag.find_all('a'):

    #Récupérer le texte de la balise a
    text = a_tag.text        # => "Cliquez pour accéder au lien"

    #Récupère l'attribut href de la balise a
    link_url = a_tag['href'] # => "https://hogehoge12345.html/next"

    print('{}: {}'.format(text, link_url))

-Obtenir le code HTML de \