爬虫即按照一定规则,自动的抓取万维网信息的程序或脚本。
URL
爬虫是根据网页的地址来寻找网页的,也就是URL(统一资源定位符)
其一般格式为:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
# protocol:就是指协议,如百度使用 https协议;
# hostname[:port]:指主机名(还有端口号为可选参数),一般网站默认端口号为80
# 如百度的主机名就是 www.baidu.com,这个就是服务器的地址;
# path:主机资源的具体地址,如目录和文件名等。
requsets库和简单方法
request库是一个非常强大的库,官方中文教程地址:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
其中的方法和说明:
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支撑一下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML网页提交删除请求,对应于HTTP的DELETE |
小说下载
介绍:笔趣看是盗版小说网站,可免费在线阅读,但不支持小说打包下载
目标:爬取笔趣小说网站的小说,打包下载下来
笔趣看:http://www.biqukan.com/
以小说《斗罗大陆》为例:首先打开第一章:
第一章的URL:http://www.biqukan.com/3_3026/1343657.html
用前面提到的requests库获取该页面的HTML信息:
if __name__ = "__main__":
target = 'http://www.biqukan.com/3_3026/1343657.html'
req = requests.get(url=target)
print(req.text)
这样就获取到了页面所有的HTML信息,但其中很多内容我们并不需要,多了很多的div等的HTML标签,这些都是我们不需要的无用信息,我们只需要将其中的正文内容提取出来即可。
所以在获取到了HTML信息后,要将其进行解析,提取所需要的信息。
提取的方法很多,这里用最简单的BeautifulSoup进行解析;
Chrome浏览器在页面内点击右键,选择检查,即可查看页面的HTML内容。
仔细看其中的内容,会发现正文所有的内容都在一个名为: