1、爬虫概念
什么是爬虫?
程序猿:写程序,然后去互联网上抓取数据的过程
互联网:网,有好多的a链接组成的,网的节点就是每一个a链接 url(统一资源定位符)
哪些语言可以实现爬虫?
(1)php,可以做,号称世界上最优美的语言,多进程、多线程支持的不好
(2)java,也可以做爬虫,人家做的很好,最主要的竞争对手,代码臃肿,重构成本大
(3)c、c++,是你能力的体现,不是良好的选择
(4)python,世界上最美丽的语言,语法简单、代码优美,学习成本低,支持的模块多,非常强大的框架 scrapy
通用爬虫、聚焦爬虫
通用爬虫:百度、360、搜狐、谷歌、必应。。。
原理:
(1)抓取网页
(2)采集数据
(3)数据处理
(4)提供检索服务
爬虫:baiduspider
通用爬虫如何抓取新网站?
(1)主动提交url
(2)设置友情链接
(3)百度会和DNS服务商合作,抓取新网站
检索排名
竞价排名
根据pagerank值、访问量、点击量(SEO)
robots.txt
如果不想让百度爬取,可以编写robots.txt,这个协议是口头上的协议
自己写的爬虫程序不需要遵从
聚焦爬虫
根据特定的需求,抓取指定的数据
思路?
代替浏览器上网
网页的特点:
(1)网页都有自己唯一的url
(2)网页内容都是html结构的
(3)使用的都是http、https协议
爬取步骤
(1)给一个url
(2)写程序,模拟浏览器访问url
(3)解析内容,提取数据
环境:
windows环境、linux环境
Python3.6 64位的
sublime pycharm
课程内容:
(1)使用到的库
urllib\requests\bs4 ....
(2)解析网页内容的知识
正则表达式、bs4、xpath、jsonpath
(3)涉及到动态html
selenium+phantomjs、chromeheadless
(4)scrapy框架
高性能框架使用
(5)scrapy-redis组件
redis,分布式爬虫
(6)涉及到爬虫-反爬虫-反反爬虫的一些内容
UA、代理、验证码、动态页面等
2、http协议
什么是协议?双方规定的传输形式
http协议:网站原理
应用层的协议 ftp(21)
http(80)\https(443) ssh(22) mysql(3306) redis(6379)
mongo(27017)
https://www.cnblogs.com/wqhwe/p/5407468.html
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
公钥、私钥
加密:密钥 解密:密钥
对称加解密
非对称加解密
服务端:公钥、私钥
http协议详解(图解http协议)
https://www.cnblogs.com/10158wsj/p/6762848.html
http请求
包含:请求行、请求头、请求内容
请求行:
get、post,以及区别
常见请求头:
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
X-Requested-With: XMLHttpRequest 代表通过ajax方式进行访问
http响应头部信息
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1 控制浏览器不要缓存
Cache-Control: no-cache
Pragma: no-cache
3、fiddler
4、urllib
urllib.request
urlopen
urlretrieve
urllib.parse
response
read()
geturl()
getheaders()
getcode()
readlines()
什么是爬虫?
程序猿:写程序,然后去互联网上抓取数据的过程
互联网:网,有好多的a链接组成的,网的节点就是每一个a链接 url(统一资源定位符)
哪些语言可以实现爬虫?
(1)php,可以做,号称世界上最优美的语言,多进程、多线程支持的不好
(2)java,也可以做爬虫,人家做的很好,最主要的竞争对手,代码臃肿,重构成本大
(3)c、c++,是你能力的体现,不是良好的选择
(4)python,世界上最美丽的语言,语法简单、代码优美,学习成本低,支持的模块多,非常强大的框架 scrapy
通用爬虫、聚焦爬虫
通用爬虫:百度、360、搜狐、谷歌、必应。。。
原理:
(1)抓取网页
(2)采集数据
(3)数据处理
(4)提供检索服务
爬虫:baiduspider
通用爬虫如何抓取新网站?
(1)主动提交url
(2)设置友情链接
(3)百度会和DNS服务商合作,抓取新网站
检索排名
竞价排名
根据pagerank值、访问量、点击量(SEO)
robots.txt
如果不想让百度爬取,可以编写robots.txt,这个协议是口头上的协议
自己写的爬虫程序不需要遵从
聚焦爬虫
根据特定的需求,抓取指定的数据
思路?
代替浏览器上网
网页的特点:
(1)网页都有自己唯一的url
(2)网页内容都是html结构的
(3)使用的都是http、https协议
爬取步骤
(1)给一个url
(2)写程序,模拟浏览器访问url
(3)解析内容,提取数据
环境:
windows环境、linux环境
Python3.6 64位的
sublime pycharm
课程内容:
(1)使用到的库
urllib\requests\bs4 ....
(2)解析网页内容的知识
正则表达式、bs4、xpath、jsonpath
(3)涉及到动态html
selenium+phantomjs、chromeheadless
(4)scrapy框架
高性能框架使用
(5)scrapy-redis组件
redis,分布式爬虫
(6)涉及到爬虫-反爬虫-反反爬虫的一些内容
UA、代理、验证码、动态页面等
2、http协议
什么是协议?双方规定的传输形式
http协议:网站原理
应用层的协议 ftp(21)
http(80)\https(443) ssh(22) mysql(3306) redis(6379)
mongo(27017)
https://www.cnblogs.com/wqhwe/p/5407468.html
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
公钥、私钥
加密:密钥 解密:密钥
对称加解密
非对称加解密
服务端:公钥、私钥
http协议详解(图解http协议)
https://www.cnblogs.com/10158wsj/p/6762848.html
http请求
包含:请求行、请求头、请求内容
请求行:
get、post,以及区别
常见请求头:
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
X-Requested-With: XMLHttpRequest 代表通过ajax方式进行访问
http响应头部信息
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1 控制浏览器不要缓存
Cache-Control: no-cache
Pragma: no-cache
3、fiddler
4、urllib
urllib.request
urlopen
urlretrieve
urllib.parse
response
read()
geturl()
getheaders()
getcode()
readlines()