ใน 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.