ใน Linux ฉันจะดึง URL และรับเนื้อหาในตัวแปรในเชลล์สคริปต์ได้อย่างไร
ใน Linux ฉันจะดึง URL และรับเนื้อหาในตัวแปรในเชลล์สคริปต์ได้อย่างไร
คำตอบ:
คุณสามารถใช้wgetคำสั่งเพื่อดาวน์โหลดเพจและอ่านเป็นตัวแปรดังนี้:
content=$(wget google.com -q -O -)
echo $content
เราใช้-Oตัวเลือกwgetที่ช่วยให้เราระบุชื่อของไฟล์ที่จะwgetทิ้งเนื้อหาของหน้า เราระบุจะได้รับการถ่ายโอนข้อมูลไปยังออกมาตรฐานและเก็บที่เป็นตัวแปร- contentคุณสามารถเพิ่ม-qตัวเลือกเงียบเพื่อปิดเอาต์พุต wget
คุณสามารถใช้คำสั่งcurlสำหรับสิ่งนี้ได้เช่นกัน:
content=$(curl -L google.com)
echo $content
เราจำเป็นต้องใช้-Lตัวเลือกนี้เนื่องจากเพจที่เราขออาจมีการย้าย ในกรณีนี้เราจำเป็นต้องได้รับเพจจากตำแหน่งใหม่ -Lหรือ--locationตัวเลือกที่ช่วยให้เรามีนี้
srcแอตทริบิวต์ขององค์ประกอบที่ถูกต้องแล้วดาวน์โหลดที่หน้า หากคุณติดตั้งtqคำสั่งนี้ควรทำ:curl -s http://ww1.watchop.io/manga2/read/one-piece/1/4 | tq -j -a src "#imgholder a img" | xargs wget
convert_links = onกับ-O-ตัวเลือก -k can be used together with -O only if outputting to a regular file.มันเป็นความล้มเหลวด้วยข้อผิดพลาด คาดว่า?
มีหลายวิธีในการรับเพจจากบรรทัดคำสั่ง ... แต่ก็ขึ้นอยู่ด้วยว่าคุณต้องการซอร์สโค้ดหรือเพจนั้นเอง:
หากคุณต้องการแหล่งรหัส:
ด้วย curl:
curl $url
ด้วย wget:
wget -O - $url
แต่ถ้าคุณต้องการรับสิ่งที่คุณเห็นด้วยเบราว์เซอร์แมวป่าชนิดหนึ่งจะมีประโยชน์:
lynx -dump $url
ฉันคิดว่าคุณสามารถหาวิธีแก้ปัญหามากมายสำหรับปัญหาเล็ก ๆ น้อย ๆ นี้บางทีคุณควรอ่าน man page ทั้งหมดสำหรับคำสั่งเหล่านั้น และอย่าลืมแทนที่$urlด้วย URL ของคุณ :)
โชคดี :)
มีwgetคำสั่งหรือcurl.
ตอนนี้คุณสามารถใช้ไฟล์ที่ดาวน์โหลดด้วย wget หรือคุณสามารถจัดการกับสตรีมด้วย curl
แหล่งข้อมูล:
content=`wget -O - $url`
หากคุณติดตั้งLWPจะมีไบนารีชื่อ " GET "
$ รับ http://example.com <! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN"> <HTML> <HEAD> <META http-equiv = "ประเภทเนื้อหา" content = "text / html; charset = utf-8"> <TITLE> ตัวอย่างหน้าเว็บ </TITLE> </ HEAD> <body> <p> คุณมาถึงหน้าเว็บนี้โดยพิมพ์ & quot; example.com & quot ;, & quot; example.net & quot; & quot; & quot example.org หรือ & quot; example.edu & quot; ลงในเว็บเบราว์เซอร์ของคุณ </p> <p> ชื่อโดเมนเหล่านี้สงวนไว้สำหรับใช้ในเอกสารประกอบและไม่สามารถใช้งานได้ สำหรับการลงทะเบียน ดู <a href="http://www.rfc-editor.org/rfc/rfc2606.txt"> RFC 2606 </a> ตอนที่ 3 </p> </ body> </ html>
wget -O-, curlและlynx -sourceลักษณะการทำงานคล้าย
คุณสามารถใช้curlหรือwgetเพื่อดึงข้อมูลดิบหรือคุณสามารถใช้w3m -dumpเพื่อแสดงข้อความที่ดีของหน้าเว็บ
$ foo=$(w3m -dump http://www.example.com/); echo $foo
You have reached this web page by typing "example.com", "example.net","example.org" or "example.edu" into your web browser. These domain names are reserved for use in documentation and are not available for registration. See RFC 2606, Section 3.