ได้รับการ `href` แล้ว
ในแบบฝึกหัดก่อนหน้า คุณได้สร้าง CSS Locator string เพื่อเลือก hyperlink (element a) ที่เป็น children ของ element div ทั้งหมดที่อยู่ใน class "course-block" ตอนนี้เราได้สร้าง SelectorList ชื่อ course_as ซึ่งเลือก hyperlink children เหล่านั้นไว้แล้ว
ทีนี้ ให้เติมส่วนที่ขาดหายไปด้านล่างเพื่อดึงค่า attribute href จาก element เหล่านี้ นี่คืออีกตัวอย่างหนึ่งของการ chaining เช่นเดียวกับที่เคยเห็นในแบบฝึกหัดก่อนหน้า
ประเด็นสำคัญคือ เราสามารถ chain การเรียกใช้เมธอด css และ xpath เข้าด้วยกันได้ เราช่วยชี้ทิศทางที่ถูกต้องโดยให้คำตอบในกรณีที่ chain ด้วยการเรียกเมธอด css อีกครั้ง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Web Scraping ด้วย Python
คำแนะนำการฝึกหัด
- สร้าง object
Selectorชื่อselโดยใช้ stringhtmlเป็น text input - กำหนดค่า
hrefattribute จาก element ในcourse_asให้กับตัวแปรhrefs_from_xpathโดยผลลัพธ์ต้องตรงกับhrefs_from_css
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from scrapy import Selector
# Create a selector object from a secret website
sel = Selector( ____ )
# Select all hyperlinks of div elements belonging to class "course-block"
course_as = sel.css( 'div.course-block > a' )
# Selecting all href attributes chaining with css
hrefs_from_css = course_as.css( '::attr(href)' )
# Selecting all href attributes chaining with xpath
hrefs_from_xpath = course_as.xpath( ____ )