2010-09-18 4 views

Trả lời

133

Bạn có thể sử dụng wget lệnh để tải trang và đọc nó vào một biến như:

content=$(wget google.com -q -O -) 
echo $content 

Chúng tôi sử dụng -O tùy chọn wget cho phép chúng ta xác định tên của tập tin vào đó wget bãi nội dung trang. Chúng tôi chỉ định - để lấy kết xuất vào đầu ra tiêu chuẩn và thu thập biến đó vào biến số content. Bạn có thể thêm tùy chọn im lặng -q để tắt đầu ra wget.

Bạn có thể sử dụng lệnh curl cho là tốt này như:

content=$(curl -L google.com) 
echo $content 

Chúng ta cần phải sử dụng tùy chọn -L như trang chúng tôi đang yêu cầu có thể đã di chuyển. Trong trường hợp đó, chúng ta cần lấy trang từ vị trí mới. Tùy chọn -L hoặc --location giúp chúng tôi thực hiện việc này.

+2

Tôi đã giải thích, và câu hỏi của bạn đã được chỉnh sửa kể từ đó, do đó, downvote của tôi không có nghĩa là bất cứ điều gì nữa ... (Nó thực sự biến thành một upvote). –

+0

Đây là một mẹo thực sự gọn gàng. Tôi gọi một kịch bản lệnh shell thông qua một tập lệnh php trên một máy chủ proxy. Khi được hỏi, máy chủ proxy sẽ bật các máy chủ đắt tiền tự tắt sau 2 giờ. Tôi cần đầu ra từ wget cho đầu ra tiêu chuẩn để đưa trở lại bản ghi bàn điều khiển Jenkins. – Dennis

+0

Tôi chưa nhận được điều này ... bất cứ ai có thể demostrate như thế nào, ví dụ. nhận thẻ img trong một biến cho liên kết này http://www2.watchop.io/manga2/read/one-piece/1/4 ?? – juggernaut1996

9

Có lệnh wget hoặc curl.

Bây giờ bạn có thể sử dụng tệp bạn đã tải xuống bằng wget. Hoặc bạn có thể xử lý một luồng với curl.


Resources:

2
content=`wget -O - $url` 
+2

'$ (...)' được ưu tiên hơn '' ... '', xem http://mywiki.wooledge.org/BashFAQ/082 – Giacomo

+2

Tôi đoán tôi đang hiển thị tuổi của mình. Quay trở lại trong ngày, tất cả _we_ đã có backticks ... và chúng tôi _liked_ nó! Bây giờ có được ra bãi cỏ của tôi! –

+0

@rjack: (Nhưng bài viết bạn đã liên kết tạo ra một trường hợp khá tốt cho cú pháp $ (...).) –

2

Bạn có thể sử dụng curl hoặc wget để lấy dữ liệu thô, hoặc bạn có thể sử dụng w3m -dump để có một văn bản đại diện tốt đẹp của một trang web.

$ 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. 
20

có nhiều cách để có được một trang trong dòng lệnh ... nhưng nó cũng phụ thuộc nếu bạn muốn mã nguồn hoặc các trang riêng của mình:

Nếu bạn cần mã nguồn

với curl: curl $url

với wget: wget -O - $url

nhưng nếu bạn wa nt để có được những gì bạn có thể thấy bằng trình duyệt, lynx có thể hữu ích: lynx -dump $url

Tôi nghĩ bạn có thể tìm thấy rất nhiều giải pháp cho vấn đề này.Và đừng quên để thay thế $ url bằng url của bạn :)

Chúc may mắn :)

2

Nếu bạn có LWP được cài đặt, nó cung cấp một nhị phân đơn giản có tên là "GET".

 
$ GET http://example.com 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<HTML> 
<HEAD> 
    <META http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <TITLE>Example Web Page</TITLE> 
</HEAD> 
<body> 
<p>You have reached this web page by typing &quot;example.com&quot;, 
&quot;example.net&quot;,&quot;example.org&quot 
    or &quot;example.edu&quot; into your web browser.</p> 
<p>These domain names are reserved for use in documentation and are not available 
    for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC 
    2606</a>, Section 3.</p> 
</BODY> 
</HTML> 

wget -O-, curl, và lynx -source cư xử tương tự.