معرفی کتاب «Website Scraping with Python : Using BeautifulSoup and Scrapy» نوشتهٔ Gábor László Hajba، منتشرشده توسط نشر Apress : Imprint: Apress در سال 2018. این کتاب در 223 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Website Scraping with Python : Using BeautifulSoup and Scrapy» در دستهٔ برنامهنویسی قرار دارد.
دنیای وب مملو از دادههای ارزشمندی است که برای تحلیلگران، پژوهشگران و توسعهدهندگان، حکم طلا را دارد. اما چگونه میتوان این دادهها را بهطور خودکار استخراج کرد و از آنها برای ساخت اپلیکیشنهای هوشمند یا تحلیلهای عمیق استفاده نمود؟ کتاب «Website Scraping with Python» نوشتهٔ گابور لاسلو هایبا، یک راهنمای عملی و گامبهگام برای ورود به دنیای استخراج دادههای وب (وباسکرپینگ) با استفاده از زبان پایتون و ابزارهای قدرتمندی مانند بیوتیفولسوپ (BeautifulSoup) و اسکرپی (Scrapy) است. این کتاب با رویکردی پروژهمحور، شما را از نصب ابزارها تا استقرار خزندههای وب در ابر، همراهی میکند.
دربارهٔ کتاب Website Scraping with Python
این کتاب که توسط انتشارات معتبر اسپرینگر-آپرس (Springer-Apress) در سال ۲۰۱۸ منتشر شده، به بررسی دقیق تکنیک استخراج داده از وبسایتها میپردازد. موضوع اصلی آن، آموزش روشهایی است که دادههای خام موجود در صفحات وب را به فرمتی مناسب برای تحلیلهای بعدی تبدیل میکند. رویکرد کتاب کاملاً عملی و مبتنی بر حل مسئله است و بر دو کتابخانهٔ محبوب و کارآمد پایتون، یعنی «بیوتیفولسوپ ۴» و «اسکرپی»، تمرکز دارد. نویسنده با زبانی شیوا، خواننده را با نصب ابزارها آشنا کرده و سپس با تشریح ویژگیهای یک اپلیکیشن کامل که قرار است در طول کتاب ساخته شود، او را به چالش میکشد. سبک کتاب بهگونهای است که هر دو ابزار را بهصورت مجزا و ترکیبی پوشش میدهد تا کاربر به بهترین نتیجه دست یابد. یکی از نقاط قوت کلیدی این اثر، توجه به چالش بزرگ وبسایتهای امروزی یعنی استفاده از جاوااسکریپت است؛ کتاب با معرفی سلنیوم (Selenium) و شبیهساز مرورگر، روشهای رندر کردن این صفحات و آمادهسازی آنها برای اسکرپینگ را آموزش میدهد. در نهایت، خواننده با مطالعهٔ این کتاب، یک برنامهٔ اسکرپینگ کامل در اختیار خواهد داشت که میتواند آن را برای نیازهای خود بازنویسی کند و حتی با استقرار آن در فضای ابری، از رایانهٔ شخصی خود برای اجرای پروژههای طولانیمدت بینیاز شود.
دربارهٔ نویسنده
گابور لاسلو هایبا (Gábor László Hajba)، نویسندهٔ این کتاب، یک مشاور فناوری اطلاعات و توسعهدهندهٔ حرفهای با تخصص در زبانهای برنامهنویسی جاوا و پایتون است. او مدیرعامل شرکت «JaPy Szoftver Kft» در مجارستان بوده و مسئولیت طراحی و توسعهٔ نیازمندیهای مشتریان در حوزهٔ نرمافزارهای سازمانی را بر عهده دارد. سابقهٔ کاری او شامل همکاری با شرکتهای مطرحی چون «EBCONT Enterprise Technologies» و «Zuhlke Group» بهعنوان مهندس نرمافزار است. هایبا بهعنوان یک برنامهنویس مشتاق، کارگاههای آموزشی متعددی در زمینهٔ جاوا و نسخهٔ سازمانی آن برگزار کرده است.
چرا باید «Website Scraping with Python» را بخوانید؟
- رویکرد پروژهمحور و عملی: این کتاب صرفاً به تئوری اکتفا نمیکند و با ساخت یک برنامهٔ کامل در طول فصلها، مفاهیم را بهصورت عینی و کاربردی آموزش میدهد.
- پوشش دو ابزار قدرتمند: شما با هر دو کتابخانهٔ بیوتیفولسوپ و اسکرپی بهعنوان دو ابزار اصلی اسکرپینگ در پایتون آشنا میشوید و میآموزید که هر کدام را چه زمانی و چگونه به کار بگیرید.
- آموزش مقابله با چالش جاوااسکریپت: بسیاری از وبسایتهای مدرن به جاوااسکریپت متکی هستند؛ این کتاب با معرفی سلنیوم، راهکار عبور از این مانع را ارائه میدهد.
- ارائهٔ راهکارهای ابری: یکی از بخشهای ارزشمند کتاب، آموزش استقرار خزندههای وب در فضای ابری است که به شما امکان میدهد پروژههای اسکرپینگ را بهصورت مداوم و بدون اشغال سیستم شخصی اجرا کنید.
- حل مسائل رایج: کتاب بهجای بیان کلیات، بر مشکلات متداولی که توسعهدهندگان با آن مواجه میشوند، تمرکز کرده و راهحلهای عملی ارائه میدهد.
- منبعی مختصر و مفید: این کتاب با بیش از ۲۲۰ صفحه، اطلاعاتی فشرده و کاربردی را در اختیار خواننده قرار میدهد که بدون اتلاف وقت، او را به هدف میرساند.
این کتاب برای چه کسانی مناسب است؟
مخاطب اصلی این کتاب، برنامهنویسانی با تجربهٔ نسبی در زبان پایتون و توسعهٔ نرمافزار هستند که به حوزهٔ استخراج داده از وب علاقهمندند. اگر با مبانی پایتون آشنایی دارید و میخواهید مهارت جدیدی بیاموزید که کاربردهای فراوانی در تحلیل داده، علم داده، بازاریابی دیجیتال و ساخت ابزارهای خودکار دارد، این کتاب نقطهٔ شروع ایدهآلی برای شماست. همچنین، تحلیلگران داده و پژوهشگرانی که نیاز به جمعآوری دادههای گسترده از منابع مختلف وب دارند، با مطالعهٔ این اثر میتوانند بهرهوری خود را به طرز چشمگیری افزایش دهند.
سوالات متداول
آیا برای مطالعهٔ این کتاب به دانش پیشرفتهٔ پایتون نیاز است؟
بر اساس توضیحات خود کتاب، مخاطب آن افرادی هستند که «تجربهٔ نسبی در زمینهٔ پایتون و توسعهٔ نرمافزار» دارند. بنابراین، آشنایی با مبانی پایتون (حلقهها، توابع، کتابخانههای پایه) برای بهرهمندی کامل از محتوای کتاب ضروری است و برای افراد کاملاً مبتدی طراحی نشده است.
تفاوت بیوتیفولسوپ و اسکرپی چیست و چرا کتاب هر دو را آموزش میدهد؟
بیوتیفولسوپ یک کتابخانهٔ سبک و عالی برای پروژههای کوچک و استخراج داده از صفحات ساده است، در حالی که اسکرپی یک چارچوب کامل و قدرتمند برای ساخت خزندههای وب با قابلیت مدیریت درخواستهای همزمان و پردازش گستردهٔ دادههاست. این کتاب با آموزش هر دو، به شما امکان میدهد تا بر اساس نیاز پروژه، بهترین ابزار را انتخاب کرده و یا آنها را بهصورت ترکیبی به کار بگیرید.
آیا این کتاب روشهای اسکرپینگ وبسایتهای دارای جاوااسکریپت را نیز پوشش میدهد؟
بله، یکی از بخشهای کلیدی کتاب به این چالش بزرگ اختصاص دارد. نویسنده با معرفی سلنیوم (Selenium) که یک ابزار خودکارسازی مرورگر است، نحوهٔ شبیهسازی یک مرورگر واقعی و رندر کردن صفحاتی که محتوای خود را با جاوااسکریپت بارگذاری میکنند، آموزش میدهد.
Closely examine website scraping and data processing: the technique of extracting data from websites in a format suitable for further analysis. You'll review which tools to use, and compare their features and efficiency. Focusing on BeautifulSoup4 and Scrapy, this concise, focused book highlights common problems and suggests solutions that readers can implement on their own. __Website Scraping with Python__ starts by introducing and installing the scraping tools and explaining the features of the full application that readers will build throughout the book. You'll see how to use BeautifulSoup4 and Scrapy individually or together to achieve the desired results. Because many sites use JavaScript, you'll also employ Selenium with a browser emulator to render these sites and make them ready for scraping. By the end of this book, you'll have a complete scraping application to use and rewrite to suit your needs. As a bonus, the author shows you options of how to deploy your spiders into the Cloud to leverage your computer from long-running scraping tasks. **What You'll Learn** * Install and implement scraping tools individually and together * Run spiders to crawl websites for data from the cloud * Work with emulators and drivers to extract data from scripted sites **Who This Book Is For** Readers with some previous Python and software development experience, and an interest in website scraping. Table of Contents 5 About the Author 11 About the Technical Reviewer 12 Acknowledgments 13 Introduction 14 Chapter 1: Getting Started 16 Website Scraping 16 Projects for Website Scraping 17 Websites Are the Bottleneck 18 Tools in This Book 18 Preparation 19 Terms and Robots 20 robots.txt 21 Technology of the Website 22 Using Chrome Developer Tools 23 Set-up 24 Tool Considerations 27 Starting to Code 28 Parsing robots.txt 28 Creating a Link Extractor 30 Extracting Images 32 Summary 33 Chapter 2: Enter the Requirements 34 The Requirements 35 Preparation 36 Navigating Through “Meat & fishFish” 38 Selecting the Required Information 43 Outlining the Application 46 Navigating the Website 47 Creating the Navigation 48 The requests Library 51 Installation 51 Getting Pages 51 Switching to requests 52 Putting the Code Together 53 Summary 54 Chapter 3: Using Beautiful Soup 55 Installing Beautiful Soup 55 Simple Examples 56 Parsing HTML Text 56 Parsing Remote HTML 58 Parsing a File 59 Difference Between find and find_all 59 Extracting All Links 59 Extracting All Images 60 Finding Tags Through Their Attributes 60 Finding Multiple Tags Based on Property 61 Changing Content 62 Adding Tags and Attributes 63 Changing Tags and Attributes 64 Deleting Tags and Attributes 65 Finding Comments 66 Conver ting a Soup to HTML Text 67 Extracting the Required Information 67 Identifying, Extracting, and Calling the Target URLs 68 Navigating the Product Pages 70 Extracting the Information 72 Using Dictionaries 72 Using Classes 76 Unforeseen Changes 77 Exporting the Data 79 To CSV 80 Quick Glance at the csv Module 80 Line Endings 82 Headers 82 Saving a Dictionary 83 Saving a Class 84 To JSON 87 Quick Glance at the json module 87 Saving a Dictionary 88 Saving a Class 89 To a Relational Database 90 To an NoSQL Database 97 Installing MongoDB 97 Writing to MongoDB 98 Per formance Improvements 99 Changing the Parser 100 Parse Only What’s Needed 101 Saving While Working 102 Developing on a Long Run 104 Caching Intermediate Step Results 104 Caching Whole Websites 105 File-Based Cache 106 Database Cache 106 Saving Space 107 Updating the Cache 108 Source Code for this Chapter 109 Summary 109 Chapter 4: Using Scrapy 111 Installing Scrapy 112 Creating the Project 112 Configuring the Project 114 Terminology 116 Middleware 116 Pipeline 117 Extension 118 Selectors 118 Implementing the Sainsbury Scraper 120 What’s This allowed_domains About? 121 Preparation 122 Using the Shell 122 def parse(self, response) 124 Navigating Through Categories 126 Navigating Through the Product Listings 130 Extracting the Data 132 Where to Put the Data? 137 Why Items? 141 Running the Spider 141 Exporting the Results 147 To CSV 148 To JSON 149 To Databases 151 MongoDB 152 SQLite 154 Bring Your Own Exporter 157 Filtering Duplicates 158 Silently Dropping Items 159 Fixing the CSV File 161 CSV Item Exporter 164 Caching with Scrapy 167 Storage Solutions 168 File System Storage 169 DBM Storage 169 LevelDB Storage 170 Cache Policies 170 Dummy Policy 170 RFC2616 Policy 171 Downloading Images 172 Using Beautiful Soup with Scrapy 175 Logging 176 (A Bit) Advanced Configuration 176 LOG_LEVEL 177 CONCURRENT_REQUESTS 178 DOWNLOAD_DELAY 178 Autothrottling 179 COOKIES_ENABLED 180 Summary 181 Chapter 5: Handling JavaScript 182 Reverse Engineering 182 Thoughts on Reverse Engineering 185 Summary 185 Splash 185 Set-up 186 A Dynamic Example 189 Integration with Scrapy 190 Adapting the basic Spider 192 What Happens When Splash Isn’t Running? 196 Summary 196 Selenium 196 Prerequisites 197 Basic Usage 198 Integration with Scrapy 199 scrapy-selenium 200 Summary 202 Solutions for Beautiful Soup 202 Splash 203 Selenium 204 Summary 205 Summary 205 Chapter 6: Website Scraping in the Cloud 206 Scrapy Cloud 206 Creating a Project 207 Deploying Your Spider 208 Start and Wait 209 Accessing the Data 211 API 213 Limitations 215 Summary 216 PythonAnywhere 216 The Example Script 216 PythonAnywhere Configuration 217 Uploading the Script 217 Running the Script 219 This Works Just Manually... 220 Storing Data in a Database? 223 Summary 227 What About Beautiful Soup? 227 Summary 229 Index 231 Front Matter ....Pages i-xviii Getting Started (Gábor László Hajba)....Pages 1-18 Enter the Requirements (Gábor László Hajba)....Pages 19-39 Using Beautiful Soup (Gábor László Hajba)....Pages 41-96 Using Scrapy (Gábor László Hajba)....Pages 97-167 Handling JavaScript (Gábor László Hajba)....Pages 169-192 Website Scraping in the Cloud (Gábor László Hajba)....Pages 193-217 Back Matter ....Pages 219-223