Semalt: ვებ – სკრეპინგი პითონთან

გაიარეთ ერთი იმ საშინელი მომენტი, როდესაც Wi-Fi არ გაქვთ. თუ ასეა, მაშინ მიხვდით, თუ რამდენს აკეთებთ თქვენს კომპიუტერზე, რომელიც ეყრდნობა ქსელს. აშკარა ჩვევის გარეშე აღმოჩნდებით, თუ ამოწმებთ თქვენს ელ.წერილს, უყურებთ თქვენი მეგობრის Instagram- ის ფოტოებს, ასევე კითხულობთ მათ ტვიტერს.
იმის გამო, რომ ამდენი კომპიუტერის მუშაობა მოიცავს ვებ – პროცესებს, ძალიან მოსახერხებელი იქნებოდა, თუკი თქვენს პროგრამებს შეეძლებათ ონლაინ რეჟიმში მიღება. ეს შემთხვევაა ვებ – სკრეპციისთვის . იგი მოიცავს პროგრამის გამოყენებას ინტერნეტში შინაარსის გადმოტვირთვისა და დამუშავების მიზნით. მაგალითად, Google იყენებს სხვადასხვა სკრაპინგულ პროგრამებს თავიანთი საძიებო სისტემისთვის ვებსაიტების ინდექსირებისთვის.

არსებობს უამრავი გზა, რომლის საშუალებითაც შეგიძლიათ მონაცემების გადაკვრა ინტერნეტიდან. ამ მეთოდებიდან ბევრი მოითხოვს სხვადასხვა პროგრამირების ენაზე ბრძანებას, როგორებიცაა პითონი და რ. მაგალითად, პითონთან ერთად შეგიძლიათ გამოიყენოთ მრავალი მოდული, როგორიცაა მოთხოვნები, ლამაზი წვნიანი, ვებ – ბროუზერი და სელენი.
'მოთხოვნების' მოდული საშუალებას გაძლევთ ფაილები მარტივად გადმოწეროთ ქსელიდან, ისე რომ არ იდარდებთ რთულ საკითხებზე, როგორიცაა კავშირის პრობლემები, ქსელის შეცდომები და მონაცემთა შეკუმშვა. ეს აუცილებლად არ მოდის პითონში, და ამიტომ მოგიწევთ მისი ინსტალაცია პირველ რიგში.
მოდული შემუშავდა იმის გამო, რომ პითონის 'urllib2' მოდულს მრავალი გართულება აქვს, რის გამოც მისი გამოყენება რთულია. რეალურად ინსტალაცია საკმაოდ ადვილია. თქვენ უნდა გააკეთოთ პიპ ინსტალაციის მოთხოვნა ბრძანების ხაზისგან. ამის შემდეგ თქვენ უნდა გააკეთოთ მარტივი ტესტირება იმისთვის, რომ მოდული სწორად დააინსტალიროთ. ამისათვის შეგიძლიათ ჩაწეროთ '>>> იმპორტის მოთხოვნა ინტერაქტიული ჭურვიში. თუ შეცდომის შესახებ შეტყობინებები არ გამოჩნდება, მაშინ ინსტალაცია წარმატებით დასრულდა.
გვერდის ჩამოტვირთვისთვის, თქვენ უნდა დაიწყოს ფუნქცია 'requests.get ()'. ფუნქცია იკავებს URL- ს სტრიქონს, გადმოწერს და შემდეგ უბრუნებს პასუხის ობიექტს. ეს შეიცავს პასუხს თქვენს მოთხოვნაზე დაბრუნებულ ვებ სერვერზე. თუ თქვენი თხოვნა წარმატებას მიაღწევს, მაშინ გადმოწერილი ვებ გვერდი ინახება, როგორც სტრიქონი საპასუხო ობიექტების ტექსტის ცვლადი.
რეაგირების ობიექტს, როგორც წესი, აქვს სტატუსის კოდი ატრიბუტი, რომლის გამოყენებით შეგიძლიათ გამოიყენოთ თუ არა თქვენი ჩამოტვირთვა წარმატებული. ანალოგიურად, პასუხის ობიექტზე შეგიძლიათ დარეკოთ "ამაღლება_for_status ()" მეთოდი. ეს გამორიცხავს გამონაკლისს, თუ ფაილის გადმოტვირთვისას მოხდა რაიმე შეცდომა. ეს შესანიშნავი გზაა, რომ დავრწმუნდეთ, რომ პროგრამა აჩერებს ცუდი გადმოტვირთვის დროს.

აქედან შეგიძლიათ შეინახოთ გადმოწერილი ვებ ფაილი თქვენს მყარ დისკზე სტანდარტული ფუნქციების გამოყენებით, 'გახსენით ()' და 'ჩაწერეთ ()'. ამასთან, ტექსტის უნიქოდური კოდირების შესანარჩუნებლად, თქვენ მოგიწევთ ტექსტური მონაცემების ჩანაცვლება ორობითი მონაცემებით.
მონაცემების ფაილზე ჩასაწერად შეგიძლიათ გამოიყენოთ 'for' loop 'iter_content ()' მეთოდით. ეს მეთოდი ბრუნვის მეშვეობით იბრუნებს მონაცემების დიდ ნაწილს თითოეულ გამეორებაზე. თითოეული ნაყარი ბაიტებია და თქვენ უნდა მიუთითოთ რამდენ ბაიტი შეიცავს. დაწერა დასრულების შემდეგ დარეკეთ "დახურვა ()" ისე, რომ დახუროთ ფაილი და თქვენი სამუშაო დასრულებულია.