[PYTHON] J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"

Je pense utiliser Scrapy, mais j'ai d'abord essayé d'obtenir des informations Web avec "Requests" et "lxml". La première étape du scraping Web avec Python.

Ce que j'ai fait

Installation

pip install requests
pip install lxml

HTML pour les tests

Je l'ai placé sur EC2 et l'ai testé via Internet.

test.html


<html>
    <body>
        <div id="test1">test1
            <ul id="test1_ul">test1 ul</ul>
        </div>
    </body>
</html>

Code de raclage

--Si vous passez une URL comme argument, procédez à partir de ce HTML --User-Agent est devenu Mac juste au cas où

(La gestion des erreurs lorsqu'il n'y a pas d'argument, etc. n'est pas implémentée)

scraping.py


import sys
import requests
import lxml.html

#set dummy user-agent
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8'}

#Spécifiez l'URL comme argument
url = ''
if len(sys.argv) > 1:
    url = sys.argv[1]

response = requests.get(url, headers = headers)
html = lxml.html.fromstring(response.content)

for div in html.xpath('//*[@id="test1_ul"]') :
    print(div.text)

La commande d'exécution est la suivante. L'URL de l'argument est arbitraire.

python scraping.py http://ec2******

Autre

Il est pratique de pouvoir obtenir facilement des sélecteurs XPath et CSS avec les outils de développement de Chrome.

Recommended Posts

J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
J'ai essayé le web scraping en utilisant python et sélénium
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Essayez d'obtenir une page Web et un fichier JSON en utilisant la bibliothèque Requests de Python
Programmation Python: j'ai essayé d'obtenir (l'exploration) des articles de presse en utilisant Selenium et BeautifulSoup4
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai essayé de laisser Pepper parler des informations sur l'événement et des informations sur les membres
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc Préparation 1
J'ai essayé d'utiliser Azure Speech to Text.
J'ai essayé de commencer avec Hy
J'ai essayé d'utiliser PyEZ et JSNAPy. Partie 2: J'ai essayé d'utiliser PyEZ
J'ai essayé de classer le texte en utilisant TensorFlow
J'ai créé une API Web
Scraping à l'aide de lxml et enregistrement sur MySQL
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé de convertir la chaîne datetime <-> avec tzinfo en utilisant strftime () et strptime ()
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Démarrez un serveur Web en utilisant Bottle et Flask (j'ai également essayé d'utiliser Apache)
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
Je souhaite créer une application Web en utilisant React et Python flask
J'ai essayé d'utiliser PyEZ et JSNAPy. Partie 1: Aperçu
J'ai essayé Web Scraping pour analyser les paroles.
J'ai implémenté DCGAN et essayé de générer des pommes
J'ai essayé d'obtenir une image en grattant
J'ai essayé la détection d'objets en utilisant Python et OpenCV
J'ai essayé de synthétiser des fichiers WAV en utilisant Pydub.
J'ai essayé d'obtenir des données CloudWatch avec Python
Programmation Python: j'ai essayé d'obtenir des informations sur l'entreprise (exploration) de Yahoo Finance aux États-Unis en utilisant BeautifulSoup4
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai essayé de notifier la mise à jour de "Hameln" en utilisant "Beautiful Soup" et "IFTTT"
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé d'utiliser openpyxl
J'ai essayé d'utiliser Ipython
J'ai essayé de déboguer.
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter