Saya ingin mengambil waktu matahari terbit / terbenam setiap hari dari situs web. Apakah mungkin untuk mengikis konten web dengan Python? apa saja modul yang digunakan? Apakah ada tutorial yang tersedia?
python
screen-scraping
eozzy
sumber
sumber
Jawaban:
Gunakan urllib2 dalam kombinasi dengan pustaka BeautifulSoup yang brilian :
sumber
soup = BeautifulSoup(requests.get('http://example.com').text)
backticks
kode dan mengubahnya menjadi tautan. Terima kasih!Saya sangat merekomendasikan Scrapy.
Kutipan dari jawaban yang dihapus:
sumber
Saya mengumpulkan skrip dari pekerjaan pengikisan web saya ke pustaka bit-bucket ini .
Contoh skrip untuk kasus Anda:
Keluaran:
sumber
Saya sangat menyarankan memeriksa pyquery . Menggunakan sintaks jquery-like (alias css-like) yang membuat segalanya sangat mudah bagi mereka yang datang dari latar belakang itu.
Untuk kasus Anda, itu akan menjadi seperti:
Keluaran:
sumber
Anda dapat menggunakan urllib2 untuk membuat permintaan HTTP, dan kemudian Anda akan memiliki konten web.
Anda bisa mendapatkannya seperti ini:
Beautiful Soup adalah parser HTML python yang seharusnya bagus untuk pengikisan layar.
Secara khusus, berikut adalah tutorial mereka tentang penguraian dokumen HTML.
Semoga berhasil!
sumber
Saya menggunakan kombinasi Scrapemark (menemukan url - py2) dan httlib2 (mengunduh gambar - py2 + 3). The scrapemark.py memiliki 500 baris kode, tetapi menggunakan ekspresi reguler, jadi mungkin tidak begitu cepat, tidak menguji.
Contoh untuk mengikis situs web Anda:
Pemakaian:
Hasil:
sumber
Jadikan hidup Anda lebih mudah dengan menggunakan
CSS Selectors
Saya tahu saya datang terlambat ke pesta tetapi saya punya saran yang bagus untuk Anda.
Menggunakan
BeautifulSoup
sudah disarankan saya lebih suka menggunakanCSS Selectors
untuk mengikis data dalam HTMLsumber
Jika kita berpikir untuk mendapatkan nama item dari kategori tertentu maka kita dapat melakukannya dengan menentukan nama kelas dari kategori tersebut menggunakan pemilih css:
Ini adalah hasil pencarian parsial:
sumber
Berikut ini adalah perayap web sederhana, saya menggunakan BeautifulSoup dan kami akan mencari semua tautan (jangkar) yang namanya kelas _3NFO0d. Saya menggunakan Flipkar.com, ini adalah toko ritel online.
sumber
Python memiliki opsi bagus untuk mengikis web. Yang terbaik dengan kerangka kerja adalah kasar . Ini bisa sedikit rumit untuk pemula, jadi ini sedikit bantuan.
1. Instal python di atas 3.5 (yang lebih rendah sampai 2,7 akan berfungsi).
2. Buat lingkungan di conda (saya melakukan ini).
3. Instal goresan di lokasi dan jalankan dari sana.
4.
Scrapy shell
akan memberi Anda antarmuka interaktif untuk menguji kode Anda.5.
Scrapy startproject projectname
akan membuat kerangka kerja.6.
Scrapy genspider spidername
akan membuat laba-laba. Anda dapat membuat laba-laba sebanyak yang Anda inginkan. Saat melakukan ini pastikan Anda berada di dalam direktori proyek.Yang lebih mudah adalah menggunakan permintaan dan sup yang indah . Sebelum mulai memberi satu jam waktu untuk membaca dokumentasi, itu akan menyelesaikan sebagian besar keraguan Anda. BS4 menawarkan berbagai parser yang dapat Anda pilih. Gunakan
user-agent
dansleep
untuk membuat goresan lebih mudah. BS4 mengembalikan bs.tag jadi gunakanvariable[0]
. Jika ada js yang berjalan, Anda tidak akan dapat mengikis menggunakan permintaan dan bs4 secara langsung. Anda bisa mendapatkan tautan api kemudian mengurai JSON untuk mendapatkan informasi yang Anda butuhkan atau cobaselenium
.sumber