工具准备
- Python环境 -> 建议用Anaconda
- 浏览器 -> Chrome (它提供了强大的开发者工具)
- Pycharm
- Web应用(需要了解一下网络访问的全过程)
- HTML(超文本标记协议,组织网页结构内容)
- CSS(层叠样式表,页面的展示方式)
- JavaScript(弥补HTML,CSS的不足,为用户提供更丰富的交互模式)
爬虫
网络爬虫(网络蜘蛛、网络机器人)
获取网络海量数据的方法
- 买数据(操作简单,成本高,针对性不强)
- 买服务(针对性比较强,灵活性不强)
- 开发爬虫,跟就自己的需求去获取数据(成本低,灵活性强)
如何开发爬虫
- 选择合适的语言 (C++ Java Python)
为什们选择Python,语法简单,提供了强大的库 - 分析数据来源
- 分析页面组成方式
- 编写代码
- 运行
HTML
我是用的HBuilder。
超文本标记语言 HyperText Markup Language
标记:标签 <标签名> 标签内容 </标签名>
不同的标签具有不同的功能和作用。
超文本:超链接,图片,音频,视频,Flash……。
超链接(在爬虫中很重要):从一个界面跳转到另一个界面
将多个网页联系起来,组成一个网络结构。
基本构造 (DOM树)
树的遍历:
先序,中序,后序遍历。
深度优先,广度优先遍历。(这玩意我们之后爬虫可能会用到)
标签
< h1 >< /h1 >……< h6 >< /h6 >标题标签
< b >< /b > 加粗显示
< strong >< /strong >加粗显示
< i >< \i >斜体显示
就不一一介绍,可以自己去看
超链接
< a herf =‘跳转地址’ >< /a >
当然 也可以设置在本页打开还是新标页签打开
新标页签打开
本页打开
图片标签
单标签
< img src = ‘’ / >
设置宽度与高度
列表标签
- 无序列表
< ul >
< li >元素< /li >
< li >元素< /li >
< li >元素< /li >
< /ul > - 有序列表
< ol >
< li >元素< /li >
< li >元素< /li >
< li >元素< /li >
< /ol > - 自定义列表
< dl >
< dt >标题< /dt >
< dd >元素< /dd >
< /dl >
表格标签
< table >
HTML表格标签要注意,先画好行,再设置单元格。
< tr > < /tr >代表设置行
< td > < /td >代表设置单元格
border 代表设置边框,1个像素大小。
表单标签
让用户输入数据,接收数据。
< form action = ‘请求的地址’ method = ‘提交的方式(get,post)’>
表单元素
< input type = ‘类型’ name = ‘表单提交时参数名’/>
< /form >
下拉文本框跟文本域
不管是表单标签里面的任何标签,要想提交必须加上name属性。
get请求,参数会拼接在地址中,而且get请求只能传递字符串类型(文本类)的参数,不能上传文件,而且有长度限制
post 参数不会拼接在地址中,而且能传输所有类型文件,不受长度限制。
CSS
基本的语法结构
选择器{
属性:值
}
选择器:
- 标签选择器
- class选择器(通过标签的class属性进行选择)
- id选择器(通过标签的id属性进行选择)
- 属性选择器(通过指定的属性进行选择)
- 后代选择器
- 子元素选择器
依次是标签,class,id,属性
JavaScript
非常滴人性化。
当然了,如果你不想写在标签里,显得很乱,可以写在Script标签里,就像这样。
依旧是非常滴银星话。
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
function btn_click(){
alert('按钮被点击')
div = document.getElementById('d')
div.innerHTML = '爬虫'
}
</script>
</head>
<body>
<div id="d">python</div>
<button onclick="btn_click()">按钮</button>
</body>
</html>
大家可以试试这个代码什么作用,如果换成这样呢
下面这种代码的情况就是我们爬虫需要注意的地方。
js可以动态的任意的改变HTML的结构和内容(即看到的不一定是原来的代码)
ajax技术,网页异步技术。
对于动态网页,我们的抓取可以使用模拟浏览器执行js的操作完成
selenium(Web测试工具)
这里提一下,我们以后用到会详细讲