प्रौद्योगिकी साझेदारी

पायथन् क्रॉलर सिद्धान्ताः ३ लघुप्रकरणाः च (स्रोतसङ्केतः)

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. सरीसृप सिद्धान्त

जालक्रॉलरः स्वयमेव जालसामग्रीम् पुनः प्राप्तुं प्रयुक्तः कार्यक्रमः । एतत् उपयोक्तृणां जालपृष्ठानि ब्राउज् करणस्य प्रक्रियां अनुकरणं करोति, HTTP अनुरोधं प्रेषयित्वा जालपृष्ठानां स्रोतसङ्केतं प्राप्नोति, आवश्यकदत्तांशं प्राप्तुं पार्सिंग्-निष्कासन-प्रौद्योगिक्याः उपयोगं करोति

1. HTTP अनुरोधः प्रतिक्रियाप्रक्रिया च

क्रॉलरः लक्ष्यजालस्थले HTTP अनुरोधं प्रेषयति अनुरोधे URL, अनुरोधविधिः (यथा GET अथवा POST), अनुरोधशीर्षकाणि (Headers) इत्यादयः सन्ति । सर्वरः अनुरोधं प्राप्तस्य अनन्तरं HTTP प्रतिक्रियां प्रत्यागमिष्यति, यस्मिन् स्थितिसङ्केतः, प्रतिक्रियाशीर्षकं, प्रतिक्रियाशरीरं (जालपृष्ठसामग्री) च सन्ति ।

2. सामान्यतया प्रयुक्ताः क्रॉलर-प्रौद्योगिकीः

  • पुस्तकालयस्य अनुरोधः:उदाहरणतयाrequestsतथाaiohttp, HTTP अनुरोधं प्रेषयितुं प्रयुक्तम् ।
  • पुस्तकालयस्य विश्लेषणम्:उदाहरणतयाBeautifulSouplxmlतथाPyQuery, जालपृष्ठसामग्रीविश्लेषणार्थं प्रयुक्तम् ।
  • भण्डारः:उदाहरणतयाpandasतथाSQLite, क्रॉल कृतदत्तांशस्य संग्रहणार्थं प्रयुक्तम् ।
  • पुस्तकालयं अतुल्यम्:उदाहरणतयाasyncioतथाaiohttp, अतुल्यकालिकक्रॉलर्-कार्यं कर्तुं क्रॉल-दक्षतायाः उन्नयनार्थं च उपयुज्यते ।

2. पायथन् क्रॉलर् कृते सामान्यतया प्रयुक्ताः पुस्तकालयाः

1. पुस्तकालयस्य अनुरोधः

  • अनुरोधं करोति: एकः सरलः शक्तिशाली च HTTP पुस्तकालयः यः HTTP संयोजनस्य स्थायित्वं तथा संयोजनसमूहीकरणं, SSL प्रमाणपत्रसत्यापनं, कुकीजम् इत्यादीनां समर्थनं करोति ।
  • aiohttp: asyncio आधारितं अतुल्यकालिकं HTTP पुस्तकालयं, उच्च-समवर्ती-क्रॉलर-परिदृश्यानां कृते उपयुक्तम् ।

2. पुस्तकालयस्य विश्लेषणम्

  • सुन्दरसूप: HTML तथा XML इत्येतयोः पार्सिंग् कृते पुस्तकालयः, उपयोगाय सुलभः तथा च बहुविधपार्सर् समर्थयति ।
  • lxml: एकः कुशलः XML तथा HTML पार्सिंग् पुस्तकालयः यः XPath तथा CSS चयनकर्तानां समर्थनं करोति ।
  • PyQuery इति: jQuery इत्यस्य एकः पायथन् संस्करणः यस्य वाक्यविन्यासः jQuery इत्यस्य सदृशः अस्ति तथा च उपयोगाय सुलभः ।

3. भण्डारः

  • पाण्डा: एकः शक्तिशाली दत्तांशविश्लेषणपुस्तकालयः यः आँकडासंरचनाः आँकडाविश्लेषणसाधनं च प्रदाति तथा च बहुविधसञ्चिकास्वरूपस्य समर्थनं करोति ।
  • SQLite इति: एकः हल्कः आँकडाधारः यः SQL प्रश्नान् समर्थयति तथा च लघुक्रॉलर परियोजनाणां कृते उपयुक्तः अस्ति ।

तदनन्तरं वयं Python crawlers इत्यस्य 7 लघुप्रकरणानाम् उपयोगं करिष्यामः येन भवन्तः Python crawlers इत्यस्य मूलभूतज्ञानं अधिकतया ज्ञातुं अवगन्तुं च शक्नुवन्ति । प्रत्येकस्य प्रकरणस्य परिचयः स्रोतसङ्केतः च निम्नलिखितम् अस्ति ।

प्रकरणम् १: शीर्ष २५० डौबन् चलच्चित्रेषु क्रॉल कुर्वन्तु

अयं प्रकरणः उपयुङ्क्तेBeautifulSoupपुस्तकालयः Top 250 Douban चलच्चित्रेभ्यः चलच्चित्रस्य शीर्षकं, रेटिंग्, समीक्षकाणां संख्या इत्यादीनां सूचनानां क्रॉलं करोति, एतां सूचनां च CSV सञ्चिकायां रक्षति ।

  1. import requests
  2. from bs4 import BeautifulSoup
  3. import csv
  4. # 请求URL
  5. url = 'https://movie.douban.com/top250'
  6. # 请求头部
  7. headers = {
  8. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
  9. }
  10. # 解析页面函数
  11. def parse_html(html):
  12. soup = BeautifulSoup(html, 'lxml')
  13. movie_list = soup.find('ol', class_='grid_view').find_all('li')
  14. for movie in movie_list:
  15. title = movie.find('div', class_='hd').find('span', class_='title').get_text()
  16. rating_num = movie.find('div', class_='star').find('span', class_='rating_num').get_text()
  17. comment_num = movie.find('div', class_='star').find_all('span')[-1].get_text()
  18. writer.writerow([title, rating_num, comment_num])
  19. # 保存数据函数
  20. def save_data():
  21. f = open('douban_movie_top250.csv', 'a', newline='', encoding='utf-8-sig')
  22. global writer
  23. writer = csv.writer(f)
  24. writer.writerow(['电影名称', '评分', '评价人数'])
  25. for i in range(10):
  26. url = 'https://movie.douban.com/top250?start=' str(i * 25) '