كيفية كشط المواقع الإلكترونية باستخدام Python و BeautifulSoup

هناك معلومات على الإنترنت أكثر مما يمكن لأي إنسان أن يستوعبه في حياته. ما تحتاجه ليس الوصول إلى تلك المعلومات ، ولكن طريقة قابلة للتطوير لجمعها وتنظيمها وتحليلها.
أنت بحاجة إلى تجريف الويب.
يستخرج تجريف الويب البيانات تلقائيًا ويعرضها بتنسيق يمكنك فهمه بسهولة. في هذا البرنامج التعليمي ، سنركز على تطبيقاته في السوق المالية ، ولكن يمكن استخدام تجريف الويب في مجموعة متنوعة من المواقف.
إذا كنت مستثمرًا متعطشًا ، فإن الحصول على أسعار الإغلاق كل يوم يمكن أن يكون مزعجًا ، خاصةً عندما تكون المعلومات التي تحتاجها موجودة عبر العديد من صفحات الويب. سنجعل عملية استخراج البيانات أسهل من خلال إنشاء أداة مكشطة ويب لاسترداد مؤشرات الأسهم تلقائيًا من الإنترنت.

ابدء
سنستخدم Python كلغة تجريف لدينا ، جنبًا إلى جنب مع مكتبة بسيطة وقوية ، BeautifulSoup.
- لمستخدمي Mac ، تم تثبيت Python مسبقًا في OS X. افتح Terminal واكتب
python --version
. يجب أن ترى أن إصدار Python الخاص بك هو 2.7.x. - لمستخدمي Windows ، يرجى تثبيت Python من خلال الموقع الرسمي.
بعد ذلك ، نحتاج إلى الحصول على مكتبة BeautifulSoup باستخدام pip
أداة إدارة الحزم لبايثون.
في المحطة ، اكتب:
easy_install pip pip install BeautifulSoup4
ملاحظة : إذا فشلت في تنفيذ سطر الأوامر أعلاه ، فحاول الإضافة sudo
أمام كل سطر.
أساسيات
قبل أن نبدأ القفز إلى الكود ، دعونا نفهم أساسيات HTML وبعض قواعد الكشط.
علامات HTML
إذا كنت تفهم بالفعل علامات HTML ، فلا تتردد في تخطي هذا الجزء.
First Scraping
Hello World
هذا هو التركيب الأساسي لصفحة ويب HTML. يخدم كل منها كتلة داخل صفحة الويب:
1 .: يجب أن تبدأ مستندات HTML بإعلان النوع.
2. وثيقة HTML واردة بين و
.
3. إعلان التعريف والنصوص لمستند HTML بين و
.
4. الجزء المرئي من وثيقة HTML هو بين و
العلامات.
5. يتم تعريف عناوين العنوان بامتداد
عبر
العلامات.
6. يتم تعريف الفقرات مع
Other useful tags include
for hyperlinks,
for tables,
for table rows, and
لأعمدة الجدول. أيضًا ، تأتي علامات HTML أحيانًا مع لمزيد من المعلومات حول علامات HTML والمعرف والفئة ، يرجى الرجوع إلى W3Schools Tutorials. قواعد القشط
فحص الصفحةلنأخذ صفحة واحدة من موقع Bloomberg Quote كمثال. بصفتنا شخصًا يتابع سوق الأسهم ، نود الحصول على اسم المؤشر (S&P 500) وسعره من هذه الصفحة. أولاً ، انقر بزر الماوس الأيمن وافتح فاحص المتصفح لتفقد صفحة الويب. ![]() حاول تحريك المؤشر فوق السعر وستتمكن من رؤية مربع أزرق يحيط به. إذا قمت بالنقر فوقه ، فسيتم تحديد HTML ذي الصلة في وحدة تحكم المتصفح. ![]() من النتيجة ، يمكننا أن نرى أن السعر موجود داخل مستويات قليلة من علامات HTML ، وهي وبالمثل ، إذا قمت بالمرور فوق الاسم "مؤشر S&P 500" ، فسيكون في الداخل .![]() الآن نحن نعرف الموقع الفريد لبياناتنا بمساعدة اقفز إلى الكودالآن بعد أن عرفنا مكان بياناتنا ، يمكننا البدء في ترميز مكشطة الويب الخاصة بنا. افتح محرر النصوص الآن! أولاً ، نحتاج إلى استيراد جميع المكتبات التي سنستخدمها.
بعد ذلك ، قم بتعريف متغير لعنوان url الخاص بالصفحة.
بعد ذلك ، استخدم Python urllib2 للحصول على صفحة HTML الخاصة بعنوان url معلنة.
أخيرًا ، قم بتحليل الصفحة إلى تنسيق BeautifulSoup حتى نتمكن من استخدام BeautifulSoup للعمل عليها.
Now we have a variable, Remember the unique layers of our data? BeautifulSoup can help us get into these layers and extract the content with
After we have the tag, we can get the data by getting its
Similarly, we can get the price too.
When you run the program, you should be able to see that it prints out the current price of the S&P 500 Index. ![]() Export to Excel CSVNow that we have the data, it is time to save it. The Excel Comma Separated Format is a nice choice. It can be opened in Excel so you can see the data and process it easily. But first, we have to import the Python csv module and the datetime module to get the record date. Insert these lines to your code in the import section.
At the bottom of your code, add the code for writing data to a csv file.
Now if you run your program, you should able to export an ![]() So if you run this program everyday, you will be able to easily get the S&P 500 Index price without rummaging through the website! Going Further (Advanced uses)Multiple Indices So scraping one index is not enough for you, right? We can try to extract multiple indices at the same time. First, modify the
Then we change the data extraction code into a
Also, modify the saving section to save data row by row.
Rerun the program and you should be able to extract two indices at the same time! Advanced Scraping TechniquesBeautifulSoup is simple and great for small-scale web scraping. But if you are interested in scraping data at a larger scale, you should consider using these other alternatives:
Adopt the DRY Method![]() DRY stands for “Don’t Repeat Yourself”, try to automate your everyday tasks like this person. Some other fun projects to consider might be keeping track of your Facebook friends’ active time (with their consent of course), or grabbing a list of topics in a forum and trying out natural language processing (which is a hot topic for Artificial Intelligence right now)! If you have any questions, please feel free to leave a comment below. References //www.gregreda.com/2013/03/03/web-scraping-101-with-python/ //www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/ تم نشر هذه المقالة في الأصل على مدونة Altitude Labs وكتبها مهندس البرمجيات ليونارد موك. Altitude Labs هي وكالة برمجيات متخصصة في تطبيقات React المخصصة للهواتف المحمولة. |