สคริปต์ที่จะเปิดใช้งานหากหน้าเว็บเปลี่ยน [ปิด]


0

ฉันกำลังมองหาวิธีที่จะให้สคริปต์ทำงานบนเดสก์ท็อปของฉันที่จะตรวจสอบหน้าเว็บบางแห่งเพื่อดูการเปลี่ยนแปลงทุกxวินาทีและหากมีการเปลี่ยนแปลงใด ๆ จะมีการแจ้งเตือนให้ฉัน ฉันเข้าใจว่าด้วยเว็บไซต์ระดับสูงการเปลี่ยนแปลงบางอย่างจะเกิดขึ้นเกือบจะตลอดเวลา แต่สิ่งที่ฉันกำลังมองหาการตรวจสอบในตอนนี้คือหน้า HTML ที่ไม่มีกระดูกซึ่งฉันกำลังรอลิงก์ที่จะแสดง มีวิธีทำเช่นนี้หรือไม่?

แก้ไข: มันจะเป็นคำสั่งให้ดาวน์โหลด html และเก็บไว้แล้วคำสั่งดาวน์โหลดและตรวจสอบที่เกิดขึ้นซ้ำ?


2
เชลล์สคริปต์ (ทำงานใน Terminal) จะเป็นตัวเลือกด้วยหรือไม่?
nohillside

@patrix ใช่มันจะ
JShoe

ในกรณีที่คุณต้องการลองด้วยตัวเองดูcurlและdiff( man curlและman diffในเทอร์มินัล) และอ่านบทช่วยสอนการเขียนโปรแกรมเชลล์ Bash
nohillside

ส่วนที่สิ่งนี้ระบุเพื่อแยกเอกสาร HTML จำนวนมากและตรวจสอบโดยทางโปรแกรมว่าสิ่งนี้ถือเป็นการ "เปลี่ยน" จะเหมาะกว่าใน StackOverflow.com หรือไม่ คำถามที่มีการแก้ไขเกี่ยวกับวิธีการดาวน์โหลด URL หนึ่งไปยังไฟล์โดยอัตโนมัติดูเหมือนจะอยู่ในหัวข้อเนื่องจาก Automator อนุญาตให้ใช้งานได้
bmike

คำตอบ:


1

บันทึกเป็นและเรียกใช้~/bin/example chmod +x ~/bin/example(แก้ไขเพื่อตรวจสอบเฉพาะวันที่แก้ไขจากส่วนหัว)

#!/bin/bash

url=http://www.iana.org/domains/example
tempdir=~/Library/Caches/scripts
temp=$tempdir/example
mkdir -p $tempdir
modified=$(curl -sI "$url" | grep ^Last-Modified)
if [[ -f "$temp" && "$modified" != "$(cat $temp)" ]]; then
    terminal-notifier -message 'Example changed'
fi
printf %s "$modified" > $temp

หากต้องการเรียกใช้ทุก 15 นาทีให้เพิ่ม*/15 * * * * ~/bin/exampleใน crontab ( EDITOR=nano crontab -e)

ขั้วแจ้งsudo gem install terminal-notifierสามารถติดตั้งได้กับ

คุณสามารถเรียกใช้ได้ทุกห้าวินาทีในหน้าต่างเชลล์:

while :; do ~/bin/example; sleep 5; done

1
หากเซิร์ฟเวอร์เผยแพร่ส่วนหัว ETag หรือ Last-Modified คุณไม่จำเป็นต้องดาวน์โหลดทั้งหน้า แต่เพียงส่วนหัวเท่านั้นที่ลดการสูญเสียทรัพยากรทั้งสองด้าน
MacLemon

"$ tmp / example" ดึงข้อมูลจากเว็บหนึ่งครั้งเพื่อทำหน้าที่พื้นฐาน
nohillside

ขออภัยที่จะจู้จี้จุกจิก แต่ยังคงต้องเริ่มต้น $ temp (เช่นโดยการทำงานcurl -sI "$url" | grep ^Last-Modified > "$temp")
nohillside

@patrix ฉันลืมไปว่า -f ตรวจสอบจากการแก้ไขครั้งแรกขอบคุณ
Lri

ดังนั้น ... ฉันไม่ชอบใช้รหัสฉันไม่เข้าใจ ฉันจะยอมรับคำตอบนี้เป็นคำตอบ แต่บางครั้งใครบางคนสามารถพาฉันผ่านวิธีการทำงานในการแชท
JShoe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.