使用curl抓取网页遇到HTTP跳转时得到多个HTTP头部的问题

Linux 下记得使用 rc 配置文件 - Archive - Soulogic

Linux 下记得使用 rc 配置文件

Posted on July 25, 2009 11:24 PM

以下为非常初级的内容,有经验者请移步

我刚接触 Linux 时最先碰到的配置文件是 .bashrc 和 .vimrc,后来才意识有好多工具都可以用这种方法来配置,试简单举个例子

cURL 的配置,我的 ~/.curlrc

compressed
location
user-agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
cookie /home/platinum/.curl_cookie
cookie-jar /home/platinum/.curl_cookie

其实就相当于那些参数自动给加上,我这几行的设定分别是

如果是 gzip 之类压缩文件,自动解压,不然会显示无意义的乱码
如果有 HTTP 30x 跳转,直接跟着去新地址
User-Agent,当然你也可以设成 Googlebot 或者别的什么
Cookie 的读写位置,如果你在用脚本模拟浏览器做点什么事(写个网页游戏的 bot 什么的),而服务器端使用了 Cookie 验证,这两行能省点事。另外我很奇怪地址必须写绝对路径,不能写 ~/

Wget 的 ~/.wgetrc 类似,主要是有些服务器要检查 User-Agent,不是它认识的浏览器就不让下,比较差劲

user-agent=Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.30 Safari/530.5
load-cookies=~/.wget_cookie
save-cookies=~/.wget_cookie
continue=1

MySQL Client 的配置文件叫 ~/.my.cnf,不带“rc”二字

[mysql]
prompt="\\r:\\m:\\s > "
user=user
password=password
host=localhost
database=dbname

[mysqldump]
user=user
password=password

以前很多关于配置的东西,都是用过就用过了,没有深究,直到使用的越来越频繁了,才去琢磨有没有更好的解决方法,最近两天才开始仔细看一些 man 里面的内容,比方说 openssh 和 rsync 的那堆东西。

写这东西的起因是突然意识 MySQL Client 也可以用这种方法来设置,虽然我之前一直用 .curlrc / .wgetrc,却一直忘了 MySQL 也可以用类似的方法来预设——我之前一直是用的 alias xxxx="mysql --host=xxx --user=user ..."。可能还会有人都会碰到我这种情况,知道有这个东西,却忘了用,因此提个醒

原文地址:https://www.cnblogs.com/lexus/p/2437201.html