python爬虫前的准备

系统 1685 0

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这个类!!!


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论