Obtenez l'URL de destination du lien en spécifiant la phrase de texte avec le grattage Python (Beautiful Soup) + XPath

Je m'entraîne depuis l'autre jour, mais Je ne pouvais pas faire les choses suivantes, Je l'ai fait, donc je vais l'écrire dans l'article.

-Je veux gratter le texte et l'URL de destination du lien qui existent dans la structure de la table sous forme d'ensemble (en utilisant DataFrame de pandas) -L'URL de destination du lien avait plusieurs a hrefs dans la même table et aucun nom identifiable n'était donné, il était donc difficile de prendre même une expression régulière. → J'ai décidé d'utiliser XPath car il me semblait bon de spécifier une phrase de texte, de la spécifier comme destination de lien de ce texte et de la gratter. (DataFrame renverra une erreur si le nombre de lignes n'est pas aligné, donc je veux omettre les données inutiles et les prendre sûrement) ・ Beautiful Soup ne peut pas utiliser XPath, mais cela peut être fait en utilisant lxml.

[Site auquel j'ai fait référence] http://gci.t.u-tokyo.ac.jp/tutorial/crawling/ http://www.slideshare.net/tushuhei/python-xpath http://qiita.com/tamonoki/items/a341657a86ff7a945224

scraping.py


#coding: utf-8
from bs4 import BeautifulSoup
import urllib2
import pandas as pd
import time
import lxml.html

aaa = []
bbb = []

for page in range(1,2):
	url = "http://www.~~~" + str(page)
	html = urllib2.urlopen(url)
	html2 = urllib2.urlopen(url)
	soup = BeautifulSoup(html, "lxml")
	dom = lxml.html.fromstring(html2.read())

	for o1 in soup.findAll("td", class_="xx"):
		aaa.append(o1.string)

	for o2 in dom.xpath(u"//a[text()='xxx']/@href"): #Obtenez href en spécifiant du texte pour la partie xxx
		bbb.append(o2)

	time.sleep(2)

df = pd.DataFrame({"aaa":aaa, "bbb":bbb})
print(df)
df.to_csv("xxxx.csv", index=False, encoding='utf-8')

C'est facile, mais c'est tout pour aujourd'hui.

Recommended Posts

Obtenez l'URL de destination du lien en spécifiant la phrase de texte avec le grattage Python (Beautiful Soup) + XPath
[Python] Supprimer en spécifiant une balise avec Beautiful Soup
Essayez de gratter avec Python + Beautiful Soup
Grattage avec Python et belle soupe
Obtenez des informations sur la propriété en grattant avec python
Écrivez un "bot" de scraping web sans tête de base en Python avec Beautiful Soup 4
[Python] Récupérez les fichiers dans le dossier avec Python
Spécification de la destination de chargement du module avec GAE python
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Obtenez l'URL de la destination de la redirection HTTP en Python
Gratter avec une belle soupe
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
Grattage de table avec belle soupe
[Python scraping] Affiche l'URL et le titre du site contenant un mot-clé spécifique dans un fichier texte
[Python] Obtenez des éléments en spécifiant des attributs avec une recherche de préfixe dans BeautifulSoup
Obtenez le lien de téléchargement Splunk en grattant
Lien pour commencer avec python
Racler plusieurs pages avec Beautiful Soup
[Python] Un mémorandum de belle soupe4
Obtenez la météo avec les requêtes Python
Gratter avec une belle soupe en 10 minutes
Obtenez les tendances Qiita avec le scraping Python
Grattage de site Web avec Beautiful Soup en Python
Obtenez des informations météorologiques avec Python et le grattage
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
Triez les visages d'anime en grattant les pages de personnages d'anime avec Beautiful Soup et Selenium
J'obtiens une erreur Python No module nommée'encodings 'avec la commande aws
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
[Python] Récupère le nom de la variable avec str
Rechercher le labyrinthe avec l'algorithme python A *
Installer en spécifiant la version avec pip
Essayez le scraping HTML avec la bibliothèque Python
[Python] Remplacez le texte généré par MeCab par les mots importants extraits par MeCab + Term Extract.
Python / subprocess> Implémentation de lien symbolique pour obtenir uniquement le nom du fichier de destination> os.readlink ()
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
[Python] Comment enregistrer des images sur le Web à la fois avec Beautiful Soup
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for