走吧走吧,人总要学着自己长大;走吧走吧,人生难免经历苦痛挣扎;走吧走吧,为自己的心找一个家。——《爱的代价》
想写爬虫,想用Go获取网站Banner。
本文涉及,获取随机User-Agent、发起GET请求、XPath解析。
Random User-Agent
此时就要推荐一个库了,哈哈哈哈
使用简单明了而且好用。
GET请求
之前写了一个POST请求的注意事项,GET请求倒没啥说的,挺简单。
本来想使用如下操作的:
1 | package main |
发现不得行,看文档最后有这么一句:
To make a request with custom headers, use NewRequest and DefaultClient.Do.
老实改成和POST一样的操作吧,加上Random UA。
1 | func getHTTPBanner(url string) { |
XPath
Python 有 BeautifulSoup 这样简单的库,当然也可以用 lxml,同样的,Golang中其实也有很多可以用来提取节点元素的方法,这里推荐阅读以下:
其中对比了个Golang的库。
这里我使用的是: github.com/antchfx/htmlquery
获取页面HTML后,解析HTML,然后直接获取title节点,然后提取信息即可。
1 | func getHTTPBanner(url string) { |