网站内容抓取工具(2019独角兽企业重金招聘Python工程师标准(图)标准)

优采云 发布时间: 2021-11-29 16:13

  网站内容抓取工具(2019独角兽企业重金招聘Python工程师标准(图)标准)

  2019独角兽企业重磅Python工程师招聘标准>>>

  

  我们的目标是在 Mac OS 上获取静态服务器的内容,通常 wget 是一个不错的选择。

  wget 是一个命令行工具,用于从 Web 服务器获取内容。但是,Mac OS X(Mountain Lion/Mavericks/Snow Leopard)上没有提供这个工具,但是 curl 是可用的。

  wget VS 卷曲

  卷曲

  获取

  总体来说curl比wget好很多,但是要想得到网站的镜像,迭代函数必不可少。我必须自己做,并在 Mac 上构建一个 wget。

  构建 wget

  首先,确保你已经安装了 Xcode 和 GCC。如果你不知道如何安装,你可以参考这个链接。

  然后从gnu下载wget的源码

  curl -O http://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz

  下载后解压

  tar -xvf wget-1.15.tar.gz

  解压后需要运行配置命令准备编译

  cd wget-1.15

./configure --with-ssl=openssl

  这里我们选择openssl作为ssl的参数选项。大家不会忘记最近发生的openssl的heartbleed漏洞:)

  配置好后,运行make

  make

  不出意外就会弹出很多警告,别着急,看到下面的内容就应该编译成功了

  ... ...

... ...

gcc  -O2 -Wall   -o wget cmpt.o connect.o convert.o cookies.o ftp.o css_.o css-url.o ftp-basic.o ftp-ls.o hash.o host.o html-parse.o html-url.o http.o init.o log.o main.o netrc.o progress.o ptimer.o recur.o res.o retr.o spider.o url.o warc.o utils.o exits.o build_info.o  version.o ftp-opie.o openssl.o http-ntlm.o ../lib/libgnu.a -liconv  -lssl -lcrypto -lz -ldl -lz -lz

Making all in doc

./texi2pod.pl -D VERSION="1.15" ./wget.texi wget.pod

/usr/bin/pod2man --center="GNU Wget" --release="GNU Wget 1.14" wget.pod > wget.1

Making all in po

Making all in tests

make[2]: Nothing to be done for `all'.

Making all in util

make[2]: Nothing to be done for `all'.

make[2]: Nothing to be done for `all-am'.

  最后,安装

  sudo make install

  安装成功后,尝试查看wget是否安装成功

  $ which wget

/usr/local/bin/wget

  如果看到如上结果说明wget已经构建成功并部署到/usr/local/bin目录下

  好了,万事俱备,就可以开始爬取网站想要获取的内容了。

  wget -mk http://website.com

  -m 参数表示迭代获取,-k 参数表示将绝对路径替换为相对路径。捕获的内容将存储在本地目录中。

  比如我想赶新浪新闻

  $ wget -mk http://news.sina.com.cn

--2014-06-30 16:55:26--  http://news.sina.com.cn/

Resolving news.sina.com.cn... 58.63.236.31, 58.63.236.46, 58.63.236.48, ...

Connecting to news.sina.com.cn|58.63.236.31|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 636992 (622K) [text/html]

Saving to: ‘news.sina.com.cn/index.html’

100%[======================================>] 636,992      391KB/s   in 1.6s   

2014-06-30 16:55:29 (391 KB/s) - ‘news.sina.com.cn/index.html’ saved [636992/636992]

Loading robots.txt; please ignore errors.

--2014-06-30 16:55:29--  http://news.sina.com.cn/robots.txt

Reusing existing connection to news.sina.com.cn:80.

HTTP request sent, awaiting response... 200 OK

Length: 70 [text/plain]

Saving to: ‘news.sina.com.cn/robots.txt’

100%[======================================>] 70          --.-K/s   in 0.03s   

2014-06-30 16:55:29 (2.54 KB/s) - ‘news.sina.com.cn/robots.txt’ saved [70/70]

--2014-06-30 16:55:29--  http://news.sina.com.cn/js/792/2012-08-09/41/headnews.js

Reusing existing connection to news.sina.com.cn:80.

HTTP request sent, awaiting response... 200 OK

Length: 31699 (31K) [application/x-javascript]

Saving to: ‘news.sina.com.cn/js/792/2012-08-09/41/headnews.js’

100%[======================================>] 31,699      --.-K/s   in 0.04s   

2014-06-30 16:55:29 (731 KB/s) - ‘news.sina.com.cn/js/792/2012-08-09/41/headnews.js’ saved [31699/31699]

--2014-06-30 16:55:29--  http://news.sina.com.cn/pfpnews/js/libweb.js

Reusing existing connection to news.sina.com.cn:80.

HTTP request sent, awaiting response... 200 OK

Length: 6554 (6.4K) [application/x-javascript]

Saving to: ‘news.sina.com.cn/pfpnews/js/libweb.js’

100%[======================================>] 6,554       --.-K/s   in 0.03s

  抓包成功后的目录如下

  

  注意:

  使用酿造

  另一个非常有效的方法是使用 homebrew,它是一个包管理工具。安装非常简单:

  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  设置好后,运行

  $ brew install wget

  就是这样,很方便

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线