Teknologi crawler sangat penting untuk mendapatkan data dan maklumat daripada Internet, dan scrapy, sebagai rangka kerja perangkak web yang cekap, fleksibel dan berskala, boleh memudahkan proses merangkak data dan sangat berguna untuk merangkak data dari Internet . Artikel ini akan memperkenalkan cara menggunakan scrapy untuk melaksanakan rangkak data untuk carian kata kunci.
Scrapy ialah rangka kerja perangkak web berdasarkan bahasa Python Ia cekap, fleksibel dan boleh berskala serta boleh digunakan untuk merangkak data, Pelbagai tugas seperti itu sebagai pengurusan maklumat dan ujian automatik. Scrapy mengandungi pelbagai komponen, seperti penghurai perangkak, perangkak web, pemproses data, dsb., yang melaluinya rangkak web dan pemprosesan data yang cekap boleh dicapai.
Sebelum menggunakan Scrapy untuk merangkak data untuk carian kata kunci, anda perlu mengetahui sesuatu tentang seni bina rangka kerja Scrapy dan perpustakaan asas seperti permintaan dan BeautifulSoup belajar. Langkah-langkah pelaksanaan khusus adalah seperti berikut:
(1) Cipta projek
Masukkan arahan berikut pada baris arahan untuk mencipta projek Scrapy:
carian permulaan projek scrapy
Perintah ini akan mencipta direktori bernama carian dalam direktori semasa, yang mengandungi fail settings.py dan subdirektori bernama spiders.
(2) Tulisan crawler
Buat fail baharu bernama searchspider.py dalam subdirektori spiders dan tulis kod perangkak dalam fail ini.
Tentukan dahulu kata kunci yang hendak dicari:
search_word = 'Scrapy'
Kemudian tentukan URL untuk merangkak data:
start_urls = [
'https://www.baidu.com/s?wd={0}&pn={1}'.format(search_word, i*10) for i in range(10)
]
Kod ini akan merangkak data daripada 10 halaman pertama hasil carian Baidu.
Seterusnya, kita perlu membina penghurai perangkak, di mana perpustakaan BeautifulSoup digunakan untuk menghuraikan halaman web, dan kemudian mengekstrak maklumat seperti tajuk dan URL:
def parse(self , respons):
soup = BeautifulSoup(response.body, 'lxml') for link in soup.find_all('a'): url = link.get('href') if url.startswith('http') and not url.startswith('https://www.baidu.com/link?url='): yield scrapy.Request(url, callback=self.parse_information) yield {'title': link.text, 'url': url}
menggunakan perpustakaan BeautifulSoup semasa menghuraikan halaman web Pustaka ini boleh menggunakan sepenuhnya kelebihan bahasa Python untuk menghuraikan halaman web dengan cepat dan mengekstrak data yang diperlukan.
Akhir sekali, kita perlu menyimpan data yang ditangkap dalam fail setempat dan mentakrifkan pemproses data dalam fail pipeline.py:
class SearchPipeline(objek):
def process_item(self, item, spider): with open('result.txt', 'a+', encoding='utf-8') as f: f.write(item['title'] + ' ' + item['url'] + '
')
Kod ini memproses setiap data yang dirangkak dan masing-masing menulis tajuk dan URL pada fail result.txt.
(3) Jalankan perangkak
Pergi ke direktori di mana projek perangkak terletak pada baris arahan, dan masukkan arahan berikut untuk menjalankan perangkak:
scrapy carian merangkak
Gunakan arahan ini untuk memulakan program perangkak Atur cara secara automatik akan merangkak data yang berkaitan dengan kata kunci Scrapy daripada hasil carian Baidu dan mengeluarkan hasil ke fail yang ditentukan.
Dengan menggunakan perpustakaan asas seperti rangka kerja Scrapy dan BeautifulSoup, kami boleh melaksanakan rangkak data dengan mudah untuk carian kata kunci. Rangka kerja Scrapy adalah cekap, fleksibel dan berskala, menjadikan proses rangkak data lebih pintar dan cekap, dan sangat sesuai untuk senario aplikasi di mana sejumlah besar data diperoleh daripada Internet. Dalam aplikasi praktikal, kami boleh meningkatkan lagi kecekapan dan kualiti merangkak data dengan mengoptimumkan penghurai dan menambah baik pemproses data.
Atas ialah kandungan terperinci Scrapy melaksanakan rangkak data untuk carian kata kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!