Cara mendapatkan teks dari html dengan python

Situs web ditulis menggunakan HTML, yang berarti bahwa setiap halaman web adalah dokumen terstruktur. Terkadang akan sangat bagus untuk mendapatkan beberapa data dari mereka dan mempertahankan strukturnya saat kita melakukannya. Situs web tidak selalu menyediakan datanya dalam format yang nyaman seperti CSV atau JSON

Di sinilah pengikisan web masuk. Pengikisan web adalah praktik menggunakan program komputer untuk menyaring halaman web dan mengumpulkan data yang Anda butuhkan dalam format yang paling berguna bagi Anda sementara pada saat yang sama menjaga struktur data

lxml dan Permintaan

lxml adalah perpustakaan yang cukup luas yang ditulis untuk mem-parsing dokumen XML dan HTML dengan sangat cepat, bahkan menangani tag yang kacau dalam prosesnya. Kami juga akan menggunakan modul Permintaan alih-alih modul urllib2 bawaan karena peningkatan kecepatan dan keterbacaan. Anda dapat dengan mudah menginstal keduanya menggunakan pip install lxml dan pip install requests

Mari kita mulai dengan impor

from lxml import html
import requests

Selanjutnya kita akan menggunakan requests.get_ untuk mengambil halaman web dengan data kita, mengurainya menggunakan modul html, dan menyimpan hasilnya di

page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
0

page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
_

(Kita perlu menggunakan

page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
_1 daripada
page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
2 karena
page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
3 secara implisit mengharapkan
page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
4 sebagai masukan. )

page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
0 sekarang berisi seluruh file HTML dalam struktur pohon yang bagus yang dapat kita bahas dengan dua cara berbeda. XPath dan CSSSelect. Dalam contoh ini, kita akan fokus pada yang pertama

XPath adalah cara menemukan informasi dalam dokumen terstruktur seperti dokumen HTML atau XML. Pengenalan yang baik untuk XPath ada di W3Schools

Ada juga berbagai alat untuk mendapatkan elemen XPath seperti FireBug untuk Firefox atau Chrome Inspector. Jika Anda menggunakan Chrome, Anda dapat mengeklik kanan sebuah elemen, memilih 'Periksa elemen', sorot kodenya, klik kanan lagi, dan pilih 'Salin XPath'

Setelah analisis cepat, kami melihat bahwa di halaman kami data terkandung dalam dua elemen – satu div dengan judul 'nama-pembeli' dan yang lainnya adalah rentang dengan kelas 'harga-barang'

<div title="buyer-name">Carson Busses</div>
<span class="item-price">$29.95</span>
_

Mengetahui hal ini, kita dapat membuat kueri XPath yang benar dan menggunakan fungsi lxml

page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.content)
6 seperti ini

#This will create a list of buyers:
buyers = tree.xpath('//div[@title="buyer-name"]/text()')
#This will create a list of prices
prices = tree.xpath('//span[@class="item-price"]/text()')

Mari kita lihat apa yang sebenarnya kita dapatkan

print('Buyers: ', buyers)
print('Prices: ', prices)

Buyers:  ['Carson Busses', 'Earl E. Byrd', 'Patty Cakes',
'Derri Anne Connecticut', 'Moe Dess', 'Leda Doggslife', 'Dan Druff',
'Al Fresco', 'Ido Hoe', 'Howie Kisses', 'Len Lease', 'Phil Meup',
'Ira Pent', 'Ben D. Rules', 'Ave Sectomy', 'Gary Shattire',
'Bobbi Soks', 'Sheila Takya', 'Rose Tattoo', 'Moe Tell']

Prices:  ['$29.95', '$8.37', '$15.26', '$19.25', '$19.25',
'$13.99', '$31.57', '$8.49', '$14.47', '$15.86', '$11.11',
'$15.98', '$16.27', '$7.50', '$50.85', '$14.26', '$5.68',
'$15.00', '$114.07', '$10.09']

Selamat. Kami telah berhasil menggores semua data yang kami inginkan dari halaman web menggunakan lxml dan Permintaan. Kami menyimpannya dalam memori sebagai dua daftar. Sekarang kita bisa melakukan segala macam hal keren dengannya. kita dapat menganalisisnya menggunakan Python atau kita dapat menyimpannya ke file dan membaginya dengan dunia

Beberapa ide keren lainnya untuk dipikirkan adalah memodifikasi skrip ini untuk mengulangi halaman-halaman lain dari kumpulan data contoh ini, atau menulis ulang aplikasi ini untuk menggunakan utas untuk meningkatkan kecepatan

Bagaimana cara mengekstrak teks dari tag HTML dengan Python?

Menggunakan Parsel untuk Mengekstrak Teks dari HTML dengan Python .
Dimulai dengan Parsel
Membuat Selector
Mengekstraksi Teks Menggunakan Pemilih CSS
Mengekstrak Teks Menggunakan Pemilih XPath
Menghapus Elemen
Membuat Skrip Scraping Web Anda

Bagaimana cara mengambil konten HTML dengan Python?

Solusi paling sederhana adalah sebagai berikut. .
permintaan impor. cetak (permintaan. dapatkan(url = 'https. //google. com'). teks).
impor urllib. permintaan sebagai r. halaman = r. urlopen('https. //google. com').
impor urllib. permintaan sebagai r. halaman = r. urlopen('https. //google. com').
<. doctype html>. <

Bagaimana cara mengonversi HTML menjadi teks dengan Python?

Hal ini dapat dilakukan menggunakan BeautifulSoup . Modul ini menyediakan fungsi get_text() yang mengambil HTML sebagai masukan dan mengembalikan teks sebagai keluaran. Contoh 1. Python3.

Bagaimana cara mengekstrak teks dari halaman HTML?

Klik dan seret untuk memilih teks pada halaman Web yang ingin Anda ekstrak dan tekan "Ctrl-C" untuk menyalin teks. Buka editor teks atau program dokumen dan tekan "Ctrl-V" untuk menempelkan teks dari halaman Web ke file teks atau jendela dokumen. Simpan file teks atau dokumen ke komputer Anda