ยินดีต้อนรับกลับ.
เรามีข้อมูลของเราแล้ว แต่ก็ยังค่อนข้างสกปรก
ฉันหมายความว่าเราไม่ได้กรองจริงๆ
ฉันสนใจเฉพาะเรื่องราวที่มีผู้โหวตมากกว่า 100 คนเท่านั้น และเราต้องการวิธีที่สวยงามในการแสดงเรื่องราวเหล่านั้นด้วย
มาทำงานกันเถอะ
ฉันต้องการสร้างฟังก์ชันและเราจะเรียกมันว่า Create
Custom Hacker News และการสร้าง Custom Hacker News จะได้รับลิงก์และโหวต
ที่เรามีอยู่ข้างบนนี้
ในที่นี้ สิ่งที่เราจะทำคือเราจะสร้างรายการข่าวของแฮ็กเกอร์ใหม่ที่ว่างเปล่าสำหรับการเริ่มต้น
และสำหรับตอนนี้ สิ่งที่ฉันต้องการทำคือกลับรายการข่าวของแฮ็กเกอร์
แต่ในรายการนี้ ฉันต้องการเพิ่มข้อความเท่านั้น และไม่มี HTML
ตัวอย่างเช่น สำหรับลิงก์ เราสนใจเฉพาะชื่อเท่านั้น
แล้วเราจะทำได้อย่างไร?
เราต้องการวนซ้ำบางสิ่ง
สิ่งที่เราจะทำคือบอกว่า 4 แล้วเราจะใช้แจงนับตรงนี้
เราจะมีดัชนี แล้วก็ไอเท็ม
และในที่นี้เราจะแจกแจง จำไว้ว่า เราเคยเห็นการแจงนับมาก่อน ซึ่งให้ดัชนีแก่เราด้วย
และเราจะแจกแจงลิงค์ และผมจะแสดงให้คุณเห็นว่าทำไมเราถึงต้องการแจกแจงในวินาทีนี้
ในที่นี้ฉันต้องการคว้าชื่อของแต่ละลิงก์
เพียงแค่ทำสิ่งนี้ เราจะบอกว่า ลิงค์
ของดัชนี
หรือลองเปลี่ยนเป็น ID X จะดีกว่า
ดังนั้นเราจะไปคว้า
ดัชนีของแต่ละลิงค์
และเราสามารถใช้บางอย่างในซุปที่สวยงามที่เรียกว่าได้รับข้อความ
และนี่จะทำให้ข้อความอยู่ในข้อความ
และเพื่อให้เราเริ่มต้นในเรื่องนี้ ฉันจะพูดง่ายๆ ว่า คุณจะใช้ dot append และเพิ่มชื่อในรายการได้อย่างไร
ลองดูว่าจะเกิดอะไรขึ้นเมื่อฉันเรียกสิ่งนี้
ฉันจะบอกว่า Create Custom Hacker News และเราจะส่งลิงก์และการโหวตให้
ให้บันทึกเรียกใช้สิ่งนี้
โอ้ และดูเหมือนว่าฉันจะสะกดแจกแจงที่นี่ไม่ได้ ดังนั้น มาแก้ไขกัน
น่าจะเป็นบุญใหม่กับ EA
ลองอีกครั้ง
เอาล่ะ ไม่มีข้อผิดพลาด แต่เราต้องการที่จะพิมพ์สิ่งนี้ในอุดมคติ
เอาเป็นว่า.
พิมพ์.
และดูสิ่งที่เราได้รับ
ฉันจะดำเนินการนี้
ไม่เป็นไร.
ดูนั่นสิ
เรามีข้อความทั้งหมด ชื่อของลิงก์ของเรา
ที่ที่ดี
ตกลง.
แต่ชื่อเหล่านี้ไม่มีประโยชน์หากไม่มีลิงก์
ใช่ไหม
และถ้าคุณจำลิงค์ใน HTML
ถูกกำหนดด้วยสิ่งที่เราเรียกว่า H ref.
แอตทริบิวต์อ้างอิง H นี้เป็นลิงก์ที่เราคลิกเพื่อไปยังหน้าถัดไปหรือหน้าของชื่อนี้ได้
ดังนั้นเราจึงสามารถคว้าสิ่งนั้นได้ และเรียกมันว่าผู้อ้างอิง h
และนี่จะเท่ากับ
ลิงค์
ดัชนี.
และคราวนี้ เราไม่ต้องการรับข้อความ
เราต้องการให้แอตทริบิวต์ถูกต้องเพื่อที่เราจะได้บอกว่า dot get แล้วคว้า h ref และในกรณีที่ไม่มีผู้อ้างอิงหรือลิงก์เสีย
เราสามารถให้ค่าเริ่มต้นในพารามิเตอร์ที่สองได้และฉันจะบอกว่า ไม่มี.
ดังนั้นตอนนี้ ข่าวแฮ็กเกอร์นี้ ต่อท้ายถ้าเราเพียงต่อท้าย สมมติว่าคราวนี้ผู้อ้างอิงและฉันเรียกใช้สิ่งนี้
ดูนั่นสิ
เรามีลิงค์ทั้งหมดบนหน้า
ที่น่ากลัว.
แต่ตอนนี้เราจะรวมชื่อและผู้อ้างอิงได้อย่างไร?
มันควรจะค่อนข้างง่ายใช่มั้ย
เราสามารถใช้พจนานุกรม
ดังนั้นในรายการของเรา เราสามารถต่อท้ายพจนานุกรมที่มีชื่อ ซึ่งจะเป็นชื่อที่เรามีอยู่ที่นี่
แล้วยัง.
มีลิงค์ครับ
ที่จะเป็น.
ตรงนี้.
ดังนั้นที่นี่
ตอนนี้เราจะมีพจนานุกรมที่มีชื่อและลิงก์
ดังนั้นถ้าฉันประหยัด
และเรียกใช้สิ่งนี้อีกครั้ง
ดูนั่นสิ
เรามีพจนานุกรมที่มีลิงค์
และยังมีชื่อเรื่อง
สุดยอด.
ดังนั้นเราจึงคว้าข้อมูลที่เราต้องการ เราคว้าลิงก์และข้อความ
เรื่องอื่นๆ ไม่สำคัญสำหรับเรา แต่เรายังมีคะแนนเสียงอยู่
แล้วเราจะทำได้อย่างไร?
คะแนนโหวต.
เราสามารถสร้างตัวแปรหรือแทนที่จะลงคะแนนเพื่อแยกความแตกต่างจากสิ่งนี้ สมมุติว่าเป็นจุด
และแต้ม
จะว่าไปแล้วเราจะทำยังไงดี?
เราจะไปคว้าคะแนนเสียง
ดัชนี.
จำไว้ว่าเรากำลังวนลูปผ่านสิ่งนี้ และเราก็แค่บอกว่า รับข้อความ
ทีนี้มาดูสิ่งที่เราได้รับในตอนแรกเมื่อเราได้รับข้อความ
ในนี้ฉันจะพิมพ์
คะแนนและดูสิ่งที่เราได้รับ
และฉันจะลบงานพิมพ์ออกจากที่นี่ เพื่อที่เราจะได้มุ่งความสนใจไปที่ประเด็นต่างๆ ในตอนนี้
ดังนั้นฉันจะบันทึกและวิ่งหนี
ไม่เป็นไร.
เราได้รับข้อผิดพลาด เราได้รับคะแนนทั้งหมดเหล่านี้ แต่ดูเหมือนว่าฉันได้รับข้อผิดพลาดที่แจ้งว่าดัชนีรายการอยู่นอกช่วง
และนี่คือ gotcha เล็กน้อยที่คุณต้องแก้จุดบกพร่องในบางครั้งเมื่อทำการขูดเว็บไซต์
แต่โดยพื้นฐานแล้ว สิ่งที่เกิดขึ้นที่นี่คือเรื่องราวและเรื่องพิเศษที่ไม่มีคะแนนโหวต
ซึ่งหายากมากในหน้าแรกของ Hacker News
แต่อันนี้ตรงนี้ไม่มีคะแนนเสียงใดๆ
โดยพื้นฐานแล้วสิ่งที่พูดคือฉันไม่เคยคว้าคะแนน ประเด็นของเรื่องนี้
ดังนั้นเราจึงมีลิงก์ในทางเทคนิคมากกว่าที่เราโหวต
เมื่อเราไปถึงลิงก์สุดท้ายที่นี่ รายการโหวตก็น้อยลงไปหนึ่งรายการ
มันจะพูดว่า เฮ้ ฉันกำลังพยายามคว้าคะแนนเสียงในตอนท้าย แต่ไม่มีคะแนนโหวตอีกแล้ว
รายการนี้สั้นกว่ารายการลิงก์
ดังนั้นเราจึงสามารถตรวจสอบอย่างรวดเร็วที่นี่เพื่อให้แน่ใจว่าเมื่อเราคว้าสิ่งเหล่านี้เราสนใจเฉพาะเรื่องราวที่มีการโหวตเท่านั้น
และโชคดีสำหรับเรา นี่คือเหตุผลที่เราต้องการตรวจสอบว่าเรื่องราวมีคะแนนมากกว่า 100 คะแนนหรือไม่
วิธีที่เราจะทำเช่นนั้น เราจะเพิ่มคำสั่ง if ตรงนี้
ก่อนที่เราจะเพิ่มคำสั่ง if เราต้องการแปลงค่านี้เป็นตัวเลขเพื่อบอกว่า
เฮ้ ถ้าเรื่องราวมีคะแนนมากกว่า 100 คะแนน เราก็อยากจะเก็บมันไว้และผนวกเข้ากับ Hacker News ใหม่ของเรา
สิ่งแรกที่เราต้องการทำคือพูดง่ายๆ
ที่เราต้องการแปลงเป็น int
แต่เรายังต้องการเปลี่ยน
จุดตรงนี้ ช่องว่างชี้เข้าไป ก็ไม่มีอะไร
เราก็สามารถใช้วิธีการแทนที่จุด และพูดว่า เฮ้ ทุกครั้งที่คุณเห็นจุดอวกาศ ซึ่งก็คือสิ่งที่เราเห็นตรงนี้
ฉันต้องการให้คุณแทนที่ด้วยสตริงว่าง
นี่จะคืนค่าสตริงที่เป็นตัวเลขให้เราแล้วแปลงเป็นจำนวนเต็ม
เลยลองมาทดสอบกัน
ขอปิดวงเล็บที่นี่
กดปุ่มปลอดภัยและเรียกใช้สคริปต์ของเรา
และที่นั่นคุณไป
เรามีเบอร์ของเรา
ที่ที่ดี
แต่เรายังคงมีข้อผิดพลาดนี้อยู่
แล้วเรามาทำอะไรที่นี่?