1、爬虫概念
爬虫:写一段代码,去指定的url(网站)去获取指定的数据
互联网:或联网中,给你一个起始url,比如:www.baidu.com,互联网中的节点都是一个al链接,或者称之为url
1.1通用爬虫:百度,搜狗,google,雅虎,bing
1.1.1他们的工作
:
1.爬取所有信息
2.主动提交url
3.百度主动和域名服务商合作
1.1.2如果不想让百度抓取?
robots.txt 放到django根目录
1.1.3网站排名
:
魏则西事件 pagerank
1.2聚焦爬虫
1.2.1通用爬虫缺点:
1.爬取数据后无用数据太多,而且重复率高
2.无法根据需求去爬取
1.2.2都有哪些语言可以实现爬虫?
php:
自称是世界上最优美的语言,多线程多进程支持的非常差。
c/c++:
也可以实现爬虫。学习成本太高可以实现,但是只是能力的体现
java:
他是python最强的竞争者。代码结构臃肿,重构成本高
python:
号称全世界最优雅的语言,语法简洁,简单易学。而且python提供了一个非常强大的scrapy框架
内容介绍:
1.python语法
2.如何抓取数据,涉及的库
urllib.request urllib.parse requests
3.解析数据
re(正则),BS4 ,xpath
4.采集动态数据
DOM操作,网页内容动态生成的
selenium + phantomjs
5.进程,线程,多线程爬虫
6.scrapy框架
7.scrapy-redis分布式部署
8.爬虫-反爬虫-反返爬虫
UA,cookie,动态加载,懒加载,验证码,代理,防盗链
2、http协议
2.1 网站的工作原理
2.1.1url的完整格式:www.xxx.com:统一资源定位符
比如:www.goudan.com/index.html?name=‘狗蛋’&age=‘18’#lala
主机ip地址:端口/参数/锚点
锚点:以前用的多,多用于页面内容非常多的页面,用于指定页面内的位置
2.2.http和https的区别:
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协议安全。
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥
(6)Web服务器利用会话密钥加密与客户端之间的通信。
2.3http协议:
图解http协议:https://www.cnblogs.com/10158wsj/p/6762848.html
HTTP请求:
HTTP请求中的常用消息头
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
3.抓包工具
3.1fiddler
3.2谷歌自带
3.3Charles
https://blog.csdn.net/d1240673769/article/details/74298429
4.urllib
4.1urllib.request
4.2urllib.parse
下篇主要介绍urllib这个类!!!