Scraping mit Python + PyQuery

PyQuery

Python verfügt über ein praktisches Modul namens PyQuery, das eine jQuery-ähnliche API bereitstellt. Schöne Suppe scheint auf den Straßen beliebt zu sein, aber PyQuery ist definitiv einfacher zu bedienen. Da die Basis lxml ist, denke ich, dass Leistung und Zuverlässigkeit auch garantiert sind.

Wenn Sie die URL an den Konstruktor übergeben, wird sie für Sie abgerufen. Sie können auch HTML-Zeichenfolgen oder Dateiobjekte übergeben. Wenn Sie danach eine Zeichenfolge angeben, die dem jQuery-Selektor ähnelt, können Sie alle übereinstimmenden Elemente abrufen.

Es ist auch möglich, jedes Element durch Übergeben eines Lambda-Ausdrucks oder einer Lambda-Funktion zu bedienen. Wenn Sie jQuery kennen, können Sie sich vorstellen, was Sie tun können. Weitere Informationen finden Sie im Handbuch!

Beispiel für eine DOM-Operation

Geben Sie dem ausgewählten Element mit der Methode .each () Attribute. class ist ein reserviertes Wort in Python. Wenn Sie es also auf class_ setzen, handelt es sich um eine HTML-Klasse.

sample.py


from pyquery import PyQuery as pq


html = '''
<ul>
  <li> item 1 </li>
  <li> item 2 </li>
  <li> item 3 </li>
</ul>
'''

dom = pq(html)
dom('li').each(lambda index, node: pq(node).attr(class_='red', x='123'))

print dom

Als ich es ausführte, wurden Klasse und mysteriöses Attribut x gesetzt.

<ul>
  <li x="123" class="red"> item 1 </li>
  <li x="123" class="red"> item 2 </li>
  <li x="123" class="red"> item 3 </li>
</ul>

Sie können dasselbe mit dom ('li') und AddClass ('red') für class tun.

Beispiel für die Bild-URL-Erfassung

Ich habe ein Beispielprogramm erstellt, das auf eine Webseite zugreift und die URL eines Bildes extrahiert. Wählen Sie das img-Tag aus und greifen Sie mit .items () auf jedes Element zu.

img_scraper.py


#!/usr/bin/env python
from urlparse import urljoin
from pyquery import PyQuery as pq
from pprint import pprint

url = 'http://www.yahoo.co.jp'

dom = pq(url)
result = set()
for img in dom('img').items():
    img_url = img.attr['src']
    if img_url.startswith('http'):
        result.add(img_url)
    else:
        result.add(urljoin(url, img_url))

pprint(result)

Das Ergebnis ist wie folgt

set(['http://i.yimg.jp/images/sicons/box16.gif',
     'http://k.yimg.jp/images/clear.gif',
     'http://k.yimg.jp/images/common/tv.gif',
     'http://k.yimg.jp/images/icon/photo.gif',
     'http://k.yimg.jp/images/new2.gif',
     'http://k.yimg.jp/images/sicons/ybm161.gif',
     'http://k.yimg.jp/images/top/sp/cgrade/iconMail.gif',
     'http://k.yimg.jp/images/top/sp/cgrade/icon_point.gif',
     'http://k.yimg.jp/images/top/sp/cgrade/info_btn-140325.gif',
     'http://k.yimg.jp/images/top/sp/cgrade/logo7.gif',
     'http://lpt.c.yimg.jp/im_sigg6mIfJALB8FuA5LAzp6.HPA---x120-y120/amd/20150208-00010001-dtohoku-000-view.jpg'])

Wenn Sie ein a-Tag anstelle des img-Tags auswählen und die Liste in Kombination mit gevent durchsuchen, können Sie in kürzester Zeit einen Crawler erstellen.

Google Finance Scraper

Ein Skript zum Scraping von Abschlüssen aus Google Finance. Da es lang ist, werde ich nur den Link zu Gist posten.

https://gist.github.com/knoguchi/6952087

Recommended Posts

Scraping mit Python + PyQuery
Scraping mit Python
Scraping mit Python
Versuchen Sie es mit Python.
Schaben mit Selen [Python]
Scraping von RSS mit Python
Ich habe versucht, mit Python zu kratzen
Web Scraping mit Python + JupyterLab
Schaben mit Selen in Python
Schaben mit Selen + Python Teil 1
Schaben mit Chromedriver in Python
Festliches Scraping mit Python, Scrapy
Scraping mit Selen in Python
Scraping mit Tor in Python
[Scraping] Python-Scraping
Kratzwettervorhersage mit Python
Schaben mit Selen + Python Teil 2
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
Versuchen Sie es mit Python + Beautiful Soup
Scraping mit Node, Ruby und Python
Scraping mit Selen in Python (Basic)
Scraping mit Python, Selen und Chromedriver
Scraping von Alexas Web Rank mit pyQuery
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Kratzen mit Python und schöner Suppe
Lassen Sie uns mit Python Image Scraping durchführen
Holen Sie sich Qiita-Trends mit Python-Scraping
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Holen Sie sich Wetterinformationen mit Python & Scraping
Python-Scraping-Memo
Schaben mit Selen
FizzBuzz in Python3
Python Scraping get_ranker_categories
Schaben mit Selen ~ 2 ~
Statistik mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Python Scraping eBay
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Schaben mit Selen
Python beginnt mit ()
Python Scraping get_title
mit Syntax (Python)
Python: Scraping Teil 1
Bingo mit Python
Zundokokiyoshi mit Python
Yosemite + Python + Pyquery
Scraping mit Python
Excel mit Python
Mikrocomputer mit Python
Python: Scraping Teil 2
Mit Python besetzen
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
WEB-Scraping mit Python (für persönliche Notizen)
Automatisieren Sie einfache Aufgaben mit Python Part1 Scraping
Erste Schritte mit Python Web Scraping Practice