爬虫-基础知识

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

网络爬虫

定义:网络蜘蛛、网络机器人,抓取网络数据的程序
总结:用Python程序去模仿人去访问网站,模仿的越像越好
目的:通过有效的大量数据分析市场走势、决策

企业获取数据的方式

Python做爬虫优势

请求模块、解析模块丰富成熟;强大的Scrapy框架

1
2
3
PHP :对多线程、异步支持不好
JAVA:代码笨重, 代码量大
C/C++ :虽然效率高, 但是代码成型很慢

爬虫分类

  1. 通用网络爬虫(搜索引擎引用,需要遵守robots协议)
    https://www.taobao.com/robots.txt

    搜索引擎如何获取一个新网站的URL?
    1. 网站主动向搜索引擎提供(百度站长平台)
    2. 和DNS服务商(万网)合作,快速收录新网站
  2. 聚焦网络爬虫
    自己写的爬虫程序, 面向需求的爬虫

数据爬取步骤

  1. 确定需要爬取的URL
  2. 通过HTTP/HTTPS协议发请求获取响应页面
  3. 提取HTML页面有用的数据 1. 所需要的数据,保存 2. 页面中有新的URL,继续第2步

Anaconda 和 Spyder

Anaconda是Python开源的发行版本
Spyder是Python的集成开发环境(iPython的一种集成环境)

  1. Spyder常用快捷键
    1. 注释/取消注释 :Ctrl + 1
    2. 保存 :Ctrl + s
    3. 运行程序 :F5
    4. 自动补全 :Tab

conda 和 pip 区别

  • conda可以很好的解决依赖关系

Google插件

  1. JSONView
  2. XPath:爬虫
  3. Proxy-SwitchyOmega:浏览器代理

WEB知识

HTTP和HTTPS

1. HTTP : 80
2. HTTPS: 443, HTTP的升级版,加了一个安全套接层

GET和POST

1. GET :查询参数会在URL地址上显示出来
2. POST:查询参数和提交的数据是隐藏在Form表单里,不会在URL地址上显示

URL 统一资源定位符

[https]:// [item.jd.com] [/14017559909.html][#detail]
 协议    域名/IP地址   访问资源的路径   锚点

User-Agent

记录用户的浏览器、操作系统等,为了让用户获取更好的HTML页面效果

1
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36

浏览器的标记

浏览器 标记
Mozilla Firefox Gecko内核
IE Trident(自己的内核)
Linux KHTML(like Gecko)
Safari Webkit(like KHTML)
Google Chrome(like Webkit)
其他浏览器 都是模仿(IE/Chrome)

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)

Json

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"name": "BeJson",
"url": "http://www.bejson.com",
"page": 88,
"isNonProfit": true,
"address": {
"street": "科技园路.",
"city": "江苏苏州",
"country": "中国"
},
"links": [
{
"name": "Google",
"url": "http://www.google.com"
},
{
"name": "Baidu",
"url": "http://www.baidu.com"
},
{
"name": "SoSo",
"url": "http://www.SoSo.com"
}
]
}