概念:网络爬虫,通过超链接(URL)爬取网页所有数据用于测试。
用途:在用户浏览网页的过程中,会看到许多图片、按钮、文字等(如http://image.baidu.com/ )这个过程其实就是用户输入网址之后,经过DNS服务器找到服务器主机,向服务器发出一个请求,服务器经过解析之后,返回给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片、文字了。爬虫爬取的就是这些内容,再通过分析和过滤这种HTML代码,实现对文字和图片的获取。
HTTP和HTTPS
HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。
SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。
使用框架:python3安装详解+Urllib库
Urllib库:Python自带的标准库,无需安装,可以直接使用.打开IDLE,新建一个py(快捷键ctrl+N),输入需要的网址
运行结果,页面元素如下图
正则表达式
有时候抓取结果是一推杂乱的HTML代码,但是只想提取有用的信息,怎么办呢,介绍一个超级优化工具——正则
匹配逻辑
- 准备文本文字
- 依次拿出表达式和文本中的字符比较
- 如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。
数量词的贪婪模式与非贪婪模式
正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符(一直向右匹配);非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式”ab*”如果用于查找”abbbc”,将找到”abbb”。而如果使用非贪婪的数量词”ab*?”,将找到”a”。
注:我们一般使用非贪婪模式来提取。
反斜杠问题
与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜