کتاب Web Scraping With Python, 3rd Edition: Data Extraction from the Modern Web (Web Scraping با پایتون، ویرایش سوم: استخراج داده از وب مدرن) مفاهیم خراش صفحات وب یا Web Scraping را در 2 قسمت مختلف شرح خواهد داد.
در ادامه مقدمهای از کتاب Web Scraping With Python را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Web Scraping With Python:
برای کسانی که این مهارت را توسعه ندادهاند، برنامهنویسی کامپیوتر میتواند نوعی جادو به نظر برسد. اگر برنامهنویسی جادویی است، خراش دادن وب یک جادوگری است: استفاده از جادو برای شاهکارهای بسیار چشمگیر و مفید – اما به طرز شگفتانگیزی بدون دردسر.
در سالهایی که مهندس نرمافزار بودم، متوجه شدهام که روشهای برنامهنویسی کمی هیجان برنامهنویسان و افراد غیرمعمول را به طور یکسان مانند خراش دادن وب جذب میکنند. توانایی نوشتن یک ربات ساده که دادهها را جمعآوری میکند و آنها را در یک ترمینال پخش میکند یا آنها را در یک پایگاه داده ذخیره میکند، اگرچه دشوار نیست، اما هرگز نمیتواند هیجان و حس احتمالی خاصی را ایجاد کند، مهم نیست که قبلاً چند بار این کار را انجام داده باشید..
متأسفانه، وقتی با برنامهنویسان دیگر در مورد خراش دادن وب صحبت میکنم، سوء تفاهم و سردرگمی زیادی در مورد این عمل وجود دارد. برخی از افراد مطمئن نیستند که قانونی است (اینطور است)، یا نحوه رسیدگی به مشکلاتی مانند صفحات سنگین جاوا اسکریپت یا لاگینهای مورد نیاز. بسیاری در مورد چگونگی شروع یک پروژه بزرگ خراش دادن وب یا حتی محل پیدا کردن دادههایی که به دنبال آن هستند سردرگم هستند.
کتاب Web Scraping With Python به دنبال پایان دادن به بسیاری از این سؤالات رایج و تصورات غلط در مورد خراش دادن وب است، در حالی که راهنمای جامعی برای اکثر کارهای متداول خراش دادن وب ارائه میدهد.
بیشتر بخوانید: کتاب Hands-On Web Scraping with Python
اسکرپینگ وب یک زمینه متنوع و سریع در حال تغییر است، و من سعی کردهام مفاهیم سطح بالا و مثالهای عینی را برای پوشش تقریباً هر پروژه جمعآوری دادهای که احتمالاً با آن مواجه میشوید ارائه دهم. در سراسر کتاب Web Scraping With Python، نمونه کدهایی برای نشان دادن این مفاهیم ارائه شده است و به شما امکان میدهد آنها را امتحان کنید. خود نمونههای کد را میتوان با یا بدون انتساب استفاده و اصلاح کرد (اگرچه همیشه قدردانی میشود). تمام نمونه کدها برای مشاهده و دانلود در GitHub موجود است.
Web Scraping چیست؟
قدمت جمعآوری خودکار دادهها از اینترنت به اندازه خود اینترنت است. اگرچه وب اسکرپینگ اصطلاح جدیدی نیست، در سالهای گذشته این عمل بیشتر به عنوان خراش دادن صفحه، داده کاوی، برداشت وب یا تغییرات مشابه شناخته شده است.
به نظر میرسد که اجماع عمومی امروز به نفع خراش دادن وب است، بنابراین این اصطلاحی است که من در سراسر کتاب Web Scraping With Python استفاده میکنم، اگرچه من همچنین به برنامههایی اشاره میکنم که به طور خاص چندین صفحه را به عنوان خزنده وب طی میکنند یا خود برنامههای خراش وب را به عنوان ربات مینامند.
در تئوری، خراش دادن وب، عمل جمعآوری دادهها از طریق هر وسیلهای غیر از برنامهای است که با یک API در تعامل است (یا، بدیهی است، از طریق یک انسان با استفاده از یک مرورگر وب). این کار معمولاً با نوشتن یک برنامه خودکار انجام میشود که یک وب سرور را پرس و جو میکند، دادهها را درخواست میکند (معمولاً به شکل HTML و سایر فایلهایی که صفحات وب را میسازند) و سپس آن دادهها را برای استخراج اطلاعات مورد نیاز تجزیه میکند.
در عمل، وب اسکرپینگ طیف گستردهای از تکنیکها و فناوریهای برنامهنویسی، مانند تجزیه و تحلیل دادهها، تجزیه زبان طبیعی و امنیت اطلاعات را در بر میگیرد. از آنجایی که دامنه این رشته بسیار گسترده است، کتاب Web Scraping With Python اصول اساسی خراش دادن وب و خزیدن در قسمت اول را پوشش میدهد و به موضوعات پیشرفته در بخش دوم میپردازد. من به همه خوانندگان پیشنهاد میکنم که قسمت اول را با دقت مطالعه کنند و در صورت نیاز به جزئیات بیشتر در قسمت دوم بپردازند.
چرا Web Scraping؟
اگر تنها راه دسترسی به اینترنت از طریق مرورگر باشد، طیف وسیعی از امکانات را از دست دادهاید. اگرچه مرورگرها برای اجرای جاوا اسکریپت، نمایش تصاویر، و چیدماناشیاء در قالبی قابل خواندن برای انسان (از جمله موارد دیگر) مفید هستند، اما اسکراپرهای وب در جمعآوری و پردازش سریع حجم زیادی از دادهها عالی هستند. به جای مشاهده یک صفحه در یک زمان از طریق پنجره باریکمانیتور، میتوانید پایگاههای دادهای را که هزاران یا حتی میلیونها صفحه را در بر میگیرند، مشاهده کنید.
علاوه بر این، اسکراپرهای وب میتوانند به مکانهایی بروند که موتورهای جستجوی سنتی نمیتوانند. جستجوی «ارزانترین پروازها به بوستون» در گوگل منجر به انبوهی از تبلیغات و سایتهای محبوب جستجوی پرواز میشود.
گوگل فقط میداند که این وب سایتها در صفحات محتوای خود چه میگویند، نه نتایج دقیق جستجوهای مختلف وارد شده در برنامه جستجوی پرواز. با این حال، یک وب اسکراپر به خوبی توسعه یافته میتواند هزینه پرواز به بوستون را در طول زمان در وب سایتهای مختلف ترسیم کند و بهترین زمان برای خرید بلیط را به شما بگوید.
ممکن است بپرسید: \”آیا جمعآوری دادهها برای چیست؟ \” (اگر با APIها آشنا نیستید، به فصل ۱۵ کتاب Web Scraping With Python مراجعه کنید.) خوب، APIها میتوانند فوقالعاده باشند، اگر یکی را پیدا کنید که با اهداف شما مطابقت داشته باشد.
آنها به گونهای طراحی شدهاند که جریان مناسبی از دادههای فرمت شده را از یک برنامه کامپیوتری به برنامه دیگر ارائه دهند. میتوانید یک API برای بسیاری از انواع دادههایی که ممکن است بخواهید استفاده کنید، مانند پستهای توییتر یا صفحات ویکیپدیا، پیدا کنید. به طور کلی، ترجیحاً استفاده از یک API (در صورت وجود)، به جای ساخت یک ربات برای دریافت همان دادهها، ترجیح داده میشود. با این حال، یک API ممکن است وجود نداشته باشد یا به دلایل مختلف برای اهداف شما مفید باشد:
- شما در حال جمعآوری مجموعههای نسبتاً کوچک و محدودی از دادهها در مجموعه بزرگی از وب سایتها بدون API منسجم هستید.
- دادههایی که میخواهید نسبتاً کوچک یا غیر معمول هستند، و سازنده فکر نمیکرد که API را تضمین کند.
- منبع زیرساخت یا توانایی فنی برای ایجاد API را ندارد.
- دادهها ارزشمند و/یا محافظت شده هستند و قرار نیست به طور گسترده منتشر شوند.
حتی زمانی که یک API وجود دارد، محدودیتهای حجم و نرخ درخواست، انواع دادهها یا قالب دادههایی که ارائه میکند ممکن است برای اهداف شما ناکافی باشد.
اینجاست که اسکراپینگ وب وارد مرحله میشود. با چند استثنا، اگر بتوانید دادهها را در مرورگر خود مشاهده کنید، میتوانید از طریق اسکریپت پایتون به آن دسترسی داشته باشید. اگر میتوانید به آن در یک اسکریپت دسترسی داشته باشید، میتوانید آن را در یک پایگاه داده ذخیره کنید. و اگر بتوانید آن را در یک پایگاه داده ذخیره کنید، تقریباً میتوانید هر کاری را با آن داده انجام دهید.
بدیهی است که دسترسی به دادههای تقریباً نامحدود کاربردهای بسیار عملی زیادی دارد: پیشبینی بازار، ترجمه به زبان ماشینی و حتی تشخیص پزشکی به ترتیب از توانایی بازیابی و تجزیه و تحلیل دادهها از سایتهای خبری، متون ترجمهشده و انجمنهای سلامت بهرهمند شدهاند..
حتی در دنیای هنر، خراش دادن وب، مرزهای جدیدی را برای خلقت باز کرده است. پروژه سال ۲۰۰۶ «ما احساس خوبی داریم» توسط جاناتان هریس و سپ کاموار، انواع سایتهای وبلاگ انگلیسی زبان را برای عباراتی که با «من احساس میکنم» یا «من احساس میکنم» را جمعآوری کرد. این منجر به تجسم دادههای محبوب شد، که توصیف میکند جهان روز به روز و دقیقه به دقیقه چگونه احساس میشود.
صرف نظر از رشته شما، خراش دادن وب تقریباً همیشه راهی برای هدایت شیوههای تجاری مؤثرتر، بهبود بهره وری یا حتی شاخه شدن به یک حوزه کاملاً جدید فراهم میکند.
درباره کتاب Web Scraping With Python
کتاب Web Scraping With Python نه تنها بهعنوان مقدمهای برای اسکرپینگ وب بلکه به عنوان راهنمای جامعی برای جمعآوری، تبدیل و استفاده از دادهها از منابع غیرهمکار طراحی شده است. اگرچه از زبان برنامهنویسی پایتون استفاده میکند و بسیاری از اصول پایتون را پوشش میدهد، اما نباید به عنوان مقدمهای برای زبان مورد استفاده قرار گیرد.
اگر اصلاً پایتون را نمیشناسید، کتاب Web Scraping With Python ممکن است کمی چالش برانگیز باشد. لطفاً از آن به عنوان متن مقدماتی پایتون استفاده نکنید. با این گفته، من سعی کردهام تمام مفاهیم و نمونههای کد را در سطح برنامهنویسی پایتون از ابتدا تا متوسط نگه دارم تا محتوا را برای طیف گستردهای از خوانندگان در دسترس قرار دهم. برای این منظور، هر از گاهی توضیحاتی در مورد برنامهنویسی پیشرفتهتر پایتون و موضوعات عمومی علوم کامپیوتر در صورت لزوم ارائه میشود. اگر خواننده پیشرفتهتری هستید، به راحتی این قسمتها را مرور کنید!
اگر به دنبال منبع جامعتری برای پایتون هستید، معرفی Python توسط Bill Lubanovic (O’Reilly) راهنمای خوبی است، البته اگر طولانی باشد. برای کسانی که دامنه توجه کوتاهتری دارند، مجموعه ویدیویی مقدمهای بر پایتون اثر جسیکا مککلار (O’Reilly) منبع بسیار خوبی است. من همچنین از Think Python اثر استاد سابقم، آلن داونی (O’Reilly) لذت بردم.
کتاب Web Scraping With Python آخر به ویژه برای کسانی که تازه برنامهنویسی میکنند ایدهآل است و علوم کامپیوتر و مفاهیم مهندسی نرمافزار را همراه با زبان پایتون آموزش میدهد.
کتابهای فنی اغلب بر روی یک زبان یا فناوری متمرکز میشوند، اما اسکراپینگ وب موضوعی نسبتاً متفاوت است، با روشهایی که نیاز به استفاده از پایگاههای داده، سرورهای وب، HTTP، HTML، امنیت اینترنت، پردازش تصویر، علم داده و ابزارهای دیگر دارد.
کتاب Web Scraping With Python سعی دارد همه اینها و موضوعات دیگر را از منظر \\\”جمعآوری داده\\\” پوشش دهد. این نباید به عنوان درمان کامل هیچ یک از این موضوعات مورد استفاده قرار گیرد، اما من معتقدم که آنها با جزئیات کافی پوشش داده شدهاند تا شما را شروع به نوشتن صفحات وب کنید!
بخش اول کتاب Web Scraping With Python موضوع خراش دادن وب و خزیدن وب را به طور عمیق پوشش میدهد، با تمرکز قوی بر تعداد انگشت شماری از کتابخانههای مورد استفاده در سراسر کتاب. بخش اول به راحتی میتواند به عنوان یک مرجع جامع برای این کتابخانهها و تکنیکها استفاده شود (به استثنای برخی موارد، که در آن مراجع اضافی ارائه خواهد شد). مهارتهایی که در بخش اول آموزش داده میشوند احتمالاً برای همه کسانی که یک وباسکریپر مینویسند، صرفنظر از هدف یا کاربرد خاصشان، مفید خواهد بود.
بخش دوم کتاب Web Scraping With Python موضوعات دیگری را پوشش میدهد که ممکن است خواننده هنگام نوشتن صفحات وب مفید باشد، اما ممکن است همیشه برای همه اسکراپرها مفید نباشد.
متأسفانه این موضوعات بسیار گسترده هستند و نمیتوان آنها را در یک فصل کتاب Web Scraping With Python خلاصه کرد. به همین دلیل، مراجعات مکرر به منابع دیگر برای اطلاعات بیشتر انجام میشود.
ساختار کتاب Web Scraping With Python به شما این امکان را میدهد که به راحتی در میان فصلها بپرید و فقط تکنیک خراش دادن وب یا اطلاعات مورد نظر خود را پیدا کنید. هنگامی که یک مفهوم یا قطعه کد بر روی دیگری که در فصل قبل ذکر شد ساخته میشود، من صریحاً به بخشی اشاره میکنم که در آن به آن پرداخته شده است.
سرفصلهای کتاب Web Scraping With Python:
- Preface
- I. Building Scrapers
- 1. How the Internet Works
- 2. The Legalities and Ethics of Web Scraping
- 3. Applications of Web Scraping
- 4. Writing Your First Web Scraper
- 5. Advanced HTML Parsing
- 6. Writing Web Crawlers
- 7. Web Crawling Models
- 8. Scrapy
- 9. Storing Data
- II. Advanced Scraping
- 10. Reading Documents
- 11. Working with Dirty Data
- 12. Reading and Writing Natural Languages
- 13. Crawling Through Forms and Logins
- 14. Scraping JavaScript
- 15. Crawling Through APIs
- 16. Image Processing and Text Recognition
- 17. Avoiding Scraping Traps
- 18. Testing Your Website with Scrapers
- 19. Web Scraping in Parallel
- 20. Web Scraping Proxies
- Index
- About the Author
جهت دانلود کتاب Web Scraping With Python میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.