Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana cara menggunakan Scrapy untuk mendapatkan data halaman cermin Google?

Bagaimana cara menggunakan Scrapy untuk mendapatkan data halaman cermin Google?

WBOY
WBOYasal
2023-06-22 11:42:091189semak imbas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn