Dengan perkembangan Internet, kami semakin bergantung kepada enjin carian untuk mendapatkan maklumat. Walau bagaimanapun, banyak negara atau wilayah telah menyekat atau menyekat akses kepada enjin carian seperti Google atas pelbagai sebab, yang menyukarkan kami untuk mendapatkan maklumat. Dalam kes ini, kita boleh menggunakan Google Mirror untuk akses. Artikel ini akan memperkenalkan cara menggunakan Scrapy untuk mendapatkan data halaman cermin Google.
1. Apakah Google mirroring
Google mirroring merujuk kepada menyimpan hasil carian Google dalam beberapa cara pada tapak web yang boleh diakses oleh pengguna. Dengan melawati tapak web ini, pengguna boleh mendapatkan hasil carian yang sama seperti melawati Google. Lazimnya, tapak web cermin ini dibuat secara sukarela oleh individu atau kumpulan, dan mereka biasanya tidak mempunyai sebarang hubungan rasmi dengan Google.
2. Kerja penyediaan
Sebelum menggunakan Scrapy untuk merangkak data, kita perlu melakukan beberapa kerja penyediaan. Pertama, kita perlu memastikan bahawa sistem kita mempunyai rangka kerja Python dan Scrapy yang dipasang. Kedua, kami memerlukan alamat laman web cermin Google. Biasanya, alamat laman web cermin ini terdedah kepada perubahan, dan kami perlu mencari kemas kini dalam masa. Di sini kami mengambil tapak web "https://g.cactus.tw/" sebagai contoh.
3. Cipta projek Scrapy
Selepas memastikan persekitaran sistem dan alamat tapak web sedia, kami boleh membuat projek Scrapy dengan pantas melalui alat baris arahan Scrapy. Operasi khusus adalah seperti berikut:
$ scrapy startproject google_mirror
Ini akan mencipta direktori projek bernama google_mirror dalam direktori semasa. Struktur direktori adalah seperti berikut:
google_mirror/ scrapy.cfg google_mirror/ __init__.py items.py middlewares.py pipelines.py settings.py spiders/ __init__.py
Antaranya, scrapy.cfg ialah fail konfigurasi Scrapy. Direktori google_mirror ialah direktori akar projek kami. items.py, middlewares.py, pipelines.py dan settings.py ialah beberapa fail teras Scrapy, yang digunakan untuk mentakrifkan model data, menulis middleware, menulis saluran paip dan mengkonfigurasi beberapa parameter Scrapy masing-masing. Direktori labah-labah ialah tempat kami menulis kod perangkak.
4. Tulis kod perangkak
Dalam direktori projek, kami boleh mencipta perangkak Scrapy dengan cepat melalui alat baris arahan. Operasi khusus adalah seperti berikut:
$ cd google_mirror $ scrapy genspider google g.cactus.tw
Ini akan mencipta perangkak bernama google dalam direktori labah-labah. Kami boleh menulis kod rangkak kami dalam perangkak ini. Kod khusus adalah seperti berikut:
import scrapy class GoogleSpider(scrapy.Spider): name = 'google' allowed_domains = ['g.cactus.tw'] start_urls = ['https://g.cactus.tw/search'] def parse(self, response): results = response.css('div.g') for result in results: title = result.css('a::text').get() url = result.css('a::attr(href)').get() summary = result.css('div:nth-child(2) > div > div:nth-child(2) > span::text').get() yield { 'title': title, 'url': url, 'summary': summary, }
Perangkak ini akan meminta halaman https://g.cactus.tw/search, dan kemudian merangkak tajuk, URL dan maklumat ringkasan dalam hasil carian. Semasa menulis kod perangkak, kami menggunakan Pemilih CSS yang disediakan oleh Scrapy untuk mencari elemen halaman.
5. Jalankan perangkak
Selepas menulis kod perangkak, kita boleh menjalankan perangkak melalui arahan berikut:
$ scrapy crawl google
Scrapy akan melaksanakan kod perangkak secara automatik, dan Keluarkan hasil yang dirangkak. Hasil keluaran adalah seperti berikut:
{'title': 'Scrapy | An open source web scraping framework for Python', 'url': 'http://scrapy.org/', 'summary': "Scrapy is an open source and collaborative web crawling framework for Python. In this post I'm sharing what motivated us to create it, why we think it is important, and what we have planned for the future."} {'title': 'Scrapinghub: Data Extraction Services, Web Crawling & Scraping', 'url': 'https://scrapinghub.com/', 'summary': 'Scrapinghub is a cloud-based data extraction platform that helps companies extract and use data from the web. Our web crawling services are trusted by Fortune 500 companies and startups.'} {'title': 'GitHub - scrapy/scrapy: Scrapy, a fast high-level web crawling & scraping framework for Python.', 'url': 'https://github.com/scrapy/scrapy', 'summary': 'Scrapy, a fast high-level web crawling & scraping framework for Python. - scrapy/scrapy'} {'title': 'Scrapy Tutorial | Web Scraping Using Scrapy Python - DataCamp', 'url': 'https://www.datacamp.com/community/tutorials/scraping-websites-scrapy-python', 'summary': 'This tutorial assumes you already know how to code in Python. Web scraping is an automatic way to extract large amounts of data from websites. Since data on websites is unstructured, web scraping enables us to convert that data into structured form. This tutorial is all about using ...'} ...
Data hasil ini termasuk tajuk, URL dan maklumat ringkasan setiap hasil carian, yang boleh diproses dan dianalisis mengikut keperluan.
6. Ringkasan
Artikel ini memperkenalkan cara menggunakan Scrapy untuk mendapatkan data halaman cermin Google. Kami mula-mula memahami konsep dan kelebihan pencerminan Google, dan kemudian menulis perangkak melalui rangka kerja Scrapy untuk merangkak data hasil carian. Dengan memanfaatkan keupayaan pengaturcaraan Python yang berkuasa dan fungsi terbaik rangka kerja Scrapy, kami boleh memperoleh sejumlah besar data dengan cepat dan cekap. Sudah tentu, dalam aplikasi praktikal, kita juga perlu mengikuti beberapa keperluan etika dan undang-undang untuk pemerolehan data.
Atas ialah kandungan terperinci Bagaimana cara menggunakan Scrapy untuk mendapatkan data halaman cermin Google?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!