pcwu's TIL Notes


[Unix] 在 wget 和 curl 加上 user-agent 資訊

常常要用 server 抓資料時,都會碰到直接使用 wgetcurl 被伺服器拒絕的狀況。

很多時候簡單加個 user-agent 偽裝一下就會過了,這也是個每次用完每次忘的指令,於是紀錄一下:

curl -A "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0" -O http://www.example.com/file.txt

wget --user-agent="User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0" -c http://www.example.com/file.txt

約莫是這樣。之前抓 Google Translate TTS API 時,這樣也行,簡單多了:

wget -q -U Mozilla -O output.mp3 "http://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&textlen=32&client=tw-ob&q=Hello&tl=En-gb"

如果有更厲害的需求,可以參考用 electron 做的 nightmare, 因為 electron 直接包了一個 chromium 在裡面,所以可以想像可以用非常真實的做到網頁的爬蟲而不被發現,而且可以進行非常豐富的操作。

(改天再寫一篇 nightmare 的筆記)