ในทางวิทยาการคอมพิวเตอร์ Web scraping หมายถึงการดึงข้อมูลจากเว็บไซต์ การใช้เทคนิคนี้จะเปลี่ยนข้อมูลที่ไม่มีโครงสร้างบนเว็บให้เป็นข้อมูลที่มีโครงสร้าง
เครื่องมือขูดเว็บทั่วไปส่วนใหญ่ใน Python3 ได้แก่ −
- Urllib2
- คำขอ
- ซุปสวย
- Lxml
- ซีลีเนียม
- ซุปเครื่องกล
Urllib2 − เครื่องมือนี้ได้รับการติดตั้งไว้ล่วงหน้าด้วย Python โมดูลนี้ใช้สำหรับแยก URL การใช้ฟังก์ชัน urlopen () ดึงข้อมูล URL โดยใช้โปรโตคอลต่างๆ (FTP, HTTP เป็นต้น)
โค้ดตัวอย่าง
จาก urllib.request นำเข้า urlopenmy_html =urlopen("https://www.tutorialspoint.com/")print(my_html.read())
ผลลัพธ์
b'\r\n \r\n\r\n\r\n\r\n\r\nหน้าแรก \r\n\r\n\r\nถาม/ตอบ\r\n\r\n\r\nเครื่องมือ \ r\n\r\n\r\nCoding Ground \ r\n\r\n\r\nเหตุการณ์ปัจจุบัน \r\n\r\n<คลาส div ="tp-primary-header mui-top-upsc">\r\nหมายเหตุ UPSC \r\n\r\nผู้สอนออนไลน์ \r\n\r\n\r\n….คำขอ − โมดูลนี้ไม่ได้ติดตั้งไว้ล่วงหน้า เราต้องเขียนบรรทัดคำสั่งในพรอมต์คำสั่งคำขอ ส่งคำขอไปที่ HTTP/1.1
คำขอติดตั้ง pip
ตัวอย่าง
คำขอนำเข้า# รับ URLmy_req =request.get('https://www.tutorialspoint.com/') พิมพ์ (my_req.encoding) พิมพ์ (my_req.status_code) พิมพ์ (my_req.elapsed) พิมพ์ (my_req.url) print(my_req.history)print(my_req.headers['Content-Type'])ผลลัพธ์
UTF-82000:00:00.205727https://www.tutorialspoint.com/[]text/html; charset=UTF-8ซุปสวย − นี่คือไลบรารีการแยกวิเคราะห์ที่ใช้ในตัวแยกวิเคราะห์ต่างๆ ไลบรารีมาตรฐานของ Python จัดเตรียม parser เริ่มต้นของ BeautifulSoup สร้าง parser tree ซึ่งใช้ในการดึงข้อมูลจากหน้า HTML
สำหรับการติดตั้งโมดูลนี้ เราเขียนบรรทัดคำสั่งในพร้อมท์คำสั่ง
pip ติดตั้ง beautifulsoup4
ตัวอย่าง
จาก bs4 นำเข้า BeautifulSoup# คำขอนำเข้าคำขอนำเข้า # รับ URLmy_req =Request.get("https://www.tutorialspoint.com/")my_data =my_req.textmy_soup =BeautifulSoup(my_data) สำหรับ my_link ใน my_soup.find_all(' a'):print(my_link.get('href'))ผลลัพธ์
https://www.tutorialspoint.com/index.htmhttps://www.tutorialspoint.com/questions/index.phphttps://www.tutorialspoint.com/online_dev_tools.htmhttps://www.tutorialspoint.com /codingground.htmhttps://www.tutorialspoint.com/current_affairs/index.htmhttps://www.tutorialspoint.com/upsc_ias_exams.htmhttps://www.tutorialspoint.com/tutor_connect/index.phphttps://www.tutorialspoint .com/programming_examples/https://www.tutorialspoint.com/whiteboard.htmhttps://www.tutorialspoint.com/netmeeting.phphttps://www.tutorialspoint.com/articles/https://www.tutorialspoint.com /index.htmhttps://www.tutorialspoint.com/tutorialslibrary.htmhttps://www.tutorialspoint.com/videotutorials/index.htmhttps://store.tutorialspoint.comhttps://www.tutorialspoint.com/html_online_training/index .asphttps://www.tutorialspoint.com/css_online_training/index.asphttps://www.tutorialspoint.com/3d_animation_online_training/index.asphttps://www.tutorialspoint.com/swift_4_online_training/index.asphttps://www.tutorialspoint .com/blo ckchain_online_training/index.asphttps://www.tutorialspoint.com/reactjs_online_training/index.asphttps://www.tutorialspoint.com/tutorialslibrary.htmhttps://www.tutorialspoint.com/computer_fundamentals/index.htmhttps://www. tutorialspoint.com/compiler_design/index.htmhttps://www.tutorialspoint.com/operating_system/index.htmhttps://www.tutorialspoint.com/data_structures_algorithms/index.htmhttps://www.tutorialspoint.com/dbms/index. htmhttps://www.tutorialspoint.com/data_communication_computer_network/index.htmhttps://www.tutorialspoint.com/academic_tutorials.htmhttps://www.tutorialspoint.com/html/index.htmhttps://www.tutorialspoint.com/ css/index.htmhttps://www.tutorialspoint.com/javascript/index.htmhttps://www.tutorialspoint.com/php/index.htmhttps://www.tutorialspoint.com/angular4/index.htmhttps://www.tutorialspoint.com/angular4/index.htm www.tutorialspoint.com/mysql/index.htmhttps://www.tutorialspoint.com/web_development_tutorials.htmhttps://www.tutorialspoint.com/cprogramming/index.htmhttps://www.tutorialspoint.com/cplusplus/ind อดีตhtmhttps://www.tutorialspoint.com/java8/index.htmhttps://www.tutorialspoint.com/python/index.htmhttps://www.tutorialspoint.com/scala/index.htmhttps://www. tutorialspoint.com/csharp/index.htmhttps://www.tutorialspoint.com/computer_programming_tutorials.htmhttps://www.tutorialspoint.com/java8/index.htmhttps://www.tutorialspoint.com/jdbc/index.htmhttps://www.tutorialspoint.com/servlets/index.htmhttps://www.tutorialspoint.com/spring/index.htmhttps://www.tutorialspoint.com/hibernate/index.htmhttps://www.tutorialspoint.com/ swing/index.htmhttps://www.tutorialspoint.com/java_technology_tutorials.htmhttps://www.tutorialspoint.com/android/index.htmhttps://www.tutorialspoint.com/swift/index.htmhttps://www. tutorialspoint.com/ios/index.htmhttps://www.tutorialspoint.com/kotlin/index.htmhttps://www.tutorialspoint.com/react_native/index.htmhttps://www.tutorialspoint.com/xamarin/index. htmhttps://www.tutorialspoint.com/mobile_development_tutorials.htmhttps://www.tutorialspoint.com/mongodb/index.htmhtt PS://www.tutorialspoint.com/plsql/index.htmhttps://www.tutorialspoint.com/sql/index.htmhttps://www.tutorialspoint.com/db2/index.htmhttps://www.tutorialspoint com/mysql/index.htmhttps://www.tutorialspoint.com/memcached/index.htmhttps://www.tutorialspoint.com/database_tutorials.htmhttps://www.tutorialspoint.com/asp.net/index.htmhttps://www.tutorialspoint.com/entity_framework/index.htmhttps://www.tutorialspoint.com/vb.net/index.htmhttps://www.tutorialspoint.com/ms_project/index.htmhttps://www.tutorialspoint com/excel/index.htmhttps://www.tutorialspoint.com/word/index.htmhttps://www.tutorialspoint.com/microsoft_technologies_tutorials.htmhttps://www.tutorialspoint.com/big_data_analytics/index.htmhttps:// www.tutorialspoint.com/hadoop/index.htmhttps://www.tutorialspoint.com/sas/index.htmhttps://www.tutorialspoint.com/qlikview/index.htmhttps://www.tutorialspoint.com/power_bi/ index.htmhttps://www.tutorialspoint.com/tableau/index.htmhttps://www.tutorialspoint.com/big_data_tutorials.htmhttps://ww w.tutorialspoint.com/tutorialslibrary.htmhttps://www.tutorialspoint.com/codingground.htmhttps://www.tutorialspoint.com/coding_platform_for_websites.htmhttps://www.tutorialspoint.com/developers_best_practices/index.htmhttps://www.tutorialspoint.com/developers_best_practices/index.htm www.tutorialspoint.com/efficient_resume_writing.htmhttps://www.tutorialspoint.com/computer_glossary.htmhttps://www.tutorialspoint.com/computer_whoiswho.htmhttps://www.tutorialspoint.com/questions_and_answers.htmhttps://www. tutorialspoint.com/multi_language_tutorials.htmhttps://itunes.apple.com/us/app/tutorials-point/id914891263?ls=1&mt=8https://play.google.com/store/apps/details?id=com tutorialspoint.onlineviewerhttps://www.windowsphone.com/s?appid=91249671-7184-4ad6-8a5f-d11847946b09/about/index.htm/about/about_team.htm/about/about_careers.htm/about/about_privacy.htm/ เกี่ยวกับ/about_terms_of_use.htmhttps://www.tutorialspoint.com/articles/https://www.tutorialspoint.com/online_dev_tools.htmhttps://www.tutorialspoint.com/free_web_graphics.htmhttps://www.tutorialspoint.com /online_file_conversion.htmhttps://www.tutorialspoint.com/shared-tutorials.phphttps://www.tutorialspoint.com/netmeeting.phphttps://www.tutorialspoint.com/free_online_whiteboard.htmhttps://www.tutorialspoint.comhttps ที่https://www.facebook.com/tutorialspointindiahttps://plus.google.com/u/0/+tutorialspointhttps://www.twitter.com/tutorialspointhttps://www.linkedin.com/company/tutorialspointhttps://www.facebook.com/tutorialspointindia www.youtube.com/channel/UCVLbzhxVTiTLiVKeGV7WEBghttps://www.tutorialspoint.com/index.htm/about/about_privacy.htm#cookies/about/faq.htm/about/about_helping.htm/about/contact_us.htmLxml − นี่คือไลบรารีการแยกวิเคราะห์ ไลบรารีแยกวิเคราะห์ HTML และ XML คุณภาพการผลิตที่มีประสิทธิภาพสูง ถ้าเราต้องการคุณภาพสูง ความเร็วสูงสุด เราก็ต้องใช้ไลบรารี่นี้ มีโมดูลมากมายที่เราสามารถดึงข้อมูลจากเว็บไซต์ได้
สำหรับการติดตั้งเราเขียนในพรอมต์คำสั่ง
pip ติดตั้ง lxml
ตัวอย่าง
จากการนำเข้า lxml etreemy_root_elem =etree.Element('html')etree.SubElement(my_root_elem, 'head')etree.SubElement(my_root_elem, 'title')etree.SubElement(my_root_elem, 'body')print (etree.js) tostring(my_root_elem, pretty_print =True).decode("utf-8"))ผลลัพธ์
ซีลีเนียม − นี่คือเครื่องมือเบราว์เซอร์อัตโนมัติ เรียกอีกอย่างว่าไดรเวอร์เว็บ เมื่อเราใช้เว็บไซต์ใด ๆ เราสังเกตว่าบางครั้งเราต้องรอสักครู่ เช่น เมื่อเราคลิกปุ่มใดๆ หรือเลื่อนหน้า ในช่วงเวลานี้จำเป็นต้องมีซีลีเนียม
สำหรับการติดตั้งซีลีเนียมเราใช้คำสั่งนี้
pip ติดตั้งซีลีเนียม
ตัวอย่าง
จากการนำเข้าซีลีเนียม webdrivermy_path_to_chromedriver ='/Users/Admin/Desktop/chromedriver'my_browser =webdriver.Chrome(executable_path =my_path_to_chromedriver)my_url ='https://www.tutorialspoint.com/'my_browser.get (my_url) ก่อน>ผลลัพธ์
ซุปเครื่องกล - นี่คือไลบรารี Python อื่นสำหรับการโต้ตอบกับเว็บไซต์โดยอัตโนมัติ เมื่อใช้สิ่งนี้ เราสามารถจัดเก็บและส่งคุกกี้โดยอัตโนมัติ สามารถติดตามการเปลี่ยนเส้นทาง และสามารถติดตามลิงก์และส่งแบบฟอร์ม ไม่ทำจาวาสคริปต์
สำหรับการติดตั้ง เราสามารถใช้คำสั่งต่อไปนี้
pip ติดตั้ง MechanicalSoup
ตัวอย่าง
นำเข้า mechanicalsoupmy_browser =mechanicalsoup.StatefulBrowser()my_value =my_browser.open("https://www.tutorialspoint.com/")print(my_value)my_val =my_browser.get_url()print(my_val)my_va =my_browser.follow_link ("แบบฟอร์ม")print(my_va)my_value1 =my_browser.get_url()print(my_value1)