การใช้ python เก็บข้อมูลจากเว็บ โดยใช้ requests

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

tatiya
PHP Super Member
PHP Super Member
โพสต์: 439
ลงทะเบียนเมื่อ: 09/07/2018 9:35 am

การใช้ python เก็บข้อมูลจากเว็บ โดยใช้ requests

โพสต์โดย tatiya » 31/08/2018 4:59 pm

requests เป็นมอดูลเสริมที่ไม่ได้มีติดมากับไพธอนแต่แรก แต่ให้เราเชคก่อนว่ามันมีมั้ยโดยการ import requests ครับถ้าไม่ขึ้น Error แสดงว่ามีแล้ว แต่ถ้ายังไม่มีวิธีลงก็ทำได้ง่ายนิดเดียว

โค้ด: เลือกทั้งหมด

pip install requests

แค่นี้ก็เรีบยร้อย

8O มาเริ่มกันเลยครับ 8O

โค้ด: เลือกทั้งหมด

r = requests.get('http://www.mindphp.com/')
print(r.content)

:baa: อธิบายการทำงาน
คำสั่ง get จะทำการอ่านเว็บแล้วคืนผลที่ได้ออกมาเป็นออบเจ็กต์ชนิด Response ซึ่งเก็บข้อมูลต่างๆของหน้าเว็บนั้นไว้
ถ้ามาดูที่แอตทริบิวต์ .text จะได้ข้อความเป็น html ที่ถอดรหัสเป็นตัวอักษรออกมา

สามารถดูได้ว่าเว็บนี้มีการใช้รหัสอักษรแบบไหนโดยดูที่ .encoding

โค้ด: เลือกทั้งหมด

r = requests.get('http://www.mindphp.com/')
print(r.encoding)

ผลลัพท์
utf-8

ส่วนถ้าอยากได้เนื้อหาเป็นไบนารีซึ่งยังไม่มีการถอดรหัสให้ใช้ .content

โค้ด: เลือกทั้งหมด

r = requests.get('http://www.mindphp.com/')
print(r.content)


ต่อไปจะลองโหลดรูปภาพให้ดูนะครับ

โค้ด: เลือกทั้งหมด

url_file = 'http://www.mindphp.com/images/info/mindphp.png'
chue_file = 'mindphp.jpg'
r = requests.get(url_file)
with open(chue_file,'wb') as f:
    f.write(r.content)


ผลลัพท์ (ไฟล์จะถูเก็บไว้ใน โฟลเดอร์โปรเจคเรานะครับ)
Selection_047.png
Selection_047.png (7.98 KiB) เปิดดู 134 ครั้ง

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 5 และ บุคคลทั่วไป 0 ท่าน