《Python3 网络爬虫开发实战》第二章
第二章 爬虫基础
- URI & URL
- HTTP & HTTPS
HTML, CSS, Javascript
- 一般在HTML文件中用link标签引入CSS文件,CSS文件定义了网页的布局 用script标签引入js文件,JavaScript定义了网页的行为
- head标签定义了网页的配置和引用,title标签定义了网页的标题,body标签定义了网页正文中的内容,div标签定义了网页中的区块
- id属性在整个页面中是唯一的,class也是一种非常常用的属性
-
HTML节点树(DOM TREE) 整个文档是一个文档节点,HTML元素是元素节点,HTML元素内的文本是文本节点,每个HTML属性是属性节点
-
选择器
我们常用CSS选择器来定位节点
#
开头代表选择id,后面紧跟id名称.
开头选择类名称 标签名筛选 直接用名字 CSS选择器支持嵌套筛选,每个选择器之间用空格隔开便可以代表嵌套关系。还有一种选择器XPath
爬虫基本原理
获取网页(urllib, requests) -> 提取信息(正则表达式, BeautifulSoup, pyquery, lxml) -> 保存数据 -> 自动化程序
只要是基于HTTP和HTTPS协议的,爬虫就可以爬取。对于需要另外加载的情况,我们只得到了html空壳,就需要分析后台ajax接口或者用Selenium,spalsh库来实现JavaScript渲染
会话和Cookies
- 静态网页:加载速度快,编写简单,但是可维护性差,不能根据URL灵活多变现实内容 动态网页
- 会话对象:在服务器端用来保存用户的会话信息,这样用户在web页中跳转的时候,存储在会话对象中的变量就不会丢失。 cookies:在客户端第一次请求服务器时,服务器会返回一个请求头带有
Set-Cookie
字段的响应,客户端浏览器会把cookies保存起来,下一次请求时,浏览器会把此cookies放在请求头中提交。 cookies和会话一个在服务器端一个在客户端,实现登录会话控制 - 严格来说没有会话cookie和持久cookie之分,只有Max Age或者Expires决定了过期的时间
- 关闭浏览器并不能关闭会话,如果把服务器设置的Cookies保存在硬盘上,或者用某种手段改写浏览器发出的HTTP请求头,把原来的cookies发送给服务器,那么还是可以保持登录状态的。