python网络爬虫介绍
网络爬虫就是按照一定的规则,自动地抓取网络上的各种信息的程序。
网络爬虫分类
按照系统结构和实现技术,可以把分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。实际应用中可以将这几种结合起来使用。
通用网络爬虫:如网络搜过引擎,根据提示信息尽可能多的收集互联网上的信息。
聚焦网络爬虫:根据设置抓取网页上某一特定主题的内容。
增量式网络爬虫:只抓取已经抓取的网页的更新内容。
深层网络爬虫:深层指定的是一些网站中需要登录、提交内容等等操作才能获取内容,相对于网页上的静态内容。
爬虫基本工作流程:
1 首先选取一部分种子 URL。
2 将这些 URL放人待抓取 URL 队列。
3 从待抓取 URL, 队列中读取待抓取队列的 URL,解析 DNS,并且得到主机的 IP,并将URL,对应的网页下载下来,存储进已下载网页库中。此外,将这些 URL放进已抓取 URL队列。
4 分析已抓取 URL队列中的 URL,从已下载的网页数据中分析出其他 URL,并和已抓取的 URL,进行比较去重,最后将去重过的 URL放入待抓取 URL队列,从而进入下一个循环。
用python实现HTTP请求:
Python中实现 HTTP请求的三种方式:urllib2/urllib、httplib/urllib 以及 Requests 。
在python2中需要urllib和urllib2配合使用。在python3中urllib2改成了urllib.request,urllib2已经停用了。
在python3中的urllib包含的模块:
l urllib.request 用于打开和读取URL
l urllib.error 用于处理前面request引起的异常
l urllib.parse 用于解析URL
l urllib.robotparser用于解析robots.txt文件
urllib.request.urlopen语法:
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
打开一个url地址发送请求,如果没有data参数,则是get请求,有的话是post请求。
例子1:
from urllib import request
response = request.urlopen('https://www.baidu.com')
html = response.read()print(html)
结果:
标签:python,request,抓取,介绍,爬虫,URL,urllib,网络 From: https://blog.51cto.com/u_16427934/12121577