爬虫

1.爬虫概念 爬虫是什么?

生活中,爬虫就是爬行的虫子,毛毛虫、蛆、蜘蛛(spider) 蜘蛛网:从任何一端都可以到达任何一端,由很多的节点构成 互联网爬虫。

通用爬虫:
百度、搜狗、谷歌、360、必应等 搜索引擎
工作:将互联网中所有的数据全部爬取下来,给用户提供检索服务
自己的网站呢?博客,阿里云服务器,放上去了,放到网上了
百度能不能抓取你的网站?
(1)其它网站中设置友情链接
(2)主动提交url,百度开发者
(3)百度会和DNS服务商合作,抓取新的网站
能不能让百度不抓取你的网站?
可以实现,通过robots.txt文件,需要放在网站的根目录,写出来哪些可以抓,哪些不可以抓取。
robots.txt是一个口头协议、君子协议,百度遵从这个协议,你自己写的,你要不要遵从呢?我们不遵从
网站排名(SEO)
(1)page-rank值排名,自己的实力排名
(2)竞价排名
缺点:
(1)抓取的很多数据都是没用的
(2)不能根据指定的需求获取数据

聚焦爬虫:
概念:根据特定的需求从互联网上爬取指定的数据
网页的共同特点:
(1)一个网页都有自己唯一的url(统一资源定位符)
(2)网页都是html结构的
(3)网页传输使用的都是http协议、https协议
思路:
(1)给我一个url
(2)向这个url发送请求,得到响应(网页内容)
(3)解析网页,提取指定数据

环境:
windows、linux、python3.6、编辑器(pycharm)、sublime

整体内容:
(1)如何发送请求
urllib.request urllib.parse requests
(2)解析数据
正则表达式(都可以)、bs4(html)、xpath(html)、jsonpath(json数据)
(3)采集动态html数据
selenium+phantomjs(大招、绝招)
(4)scrapy,scrapy-redis分布式部署
(5)涉及到爬虫、反爬虫、反反爬虫的技术

核心,理论上:只要浏览器能够访问,那么程序就能访问
实际过程中,参数搞不定,
反爬手段:UA、代理、验证码、动态数据加载、防盗链、懒加载
不好:爬虫要求高 web < 爬虫 < 数据

2、http协议

http协议
因为代码要模拟发送http请求,所以要学习http协议
图解http协议

http和https的区别
网景公司 Netscape 倒闭了 javascript
Mozilla基金会 火狐浏览器 谷歌浏览器
https://www.cnblogs.com/wqhwe/p/5407468.html
HTTPS和HTTP的区别主要如下:
  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 钓鱼网站 12306
  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
公钥-私钥
加密,我恨你 md5 base64 秘钥
解密,秘钥
公钥加密的数据,只能私钥解密,私钥加密的数据,只能公钥解密

http协议
https://www.cnblogs.com/10158wsj/p/6762848.html
请求:请求行、请求头、请求体
get和post的区别?
(1)post可以带的参数比get多,get有限制,post没有限制
(2)get参数显示,post不显示,post稍微安全
(3)get用来获取数据,post用来提交数据
请求头
  accept:浏览器通过这个头告诉服务器,它所支持的数据类型
  Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
  Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
  Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
  Host:浏览器通过这个头告诉服务器,想访问哪台主机
  If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
  Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链 上一级页面,来源

3、抓包工具 抓包是什么?为什么抓包?

要通过代码模拟发送http请求,所以要抓包看浏览器怎么发的

(1)谷歌浏览器自带抓包 xhr:XMLHttpRequest ajax 局部刷新 query_string: 查询字符串,url后面携带的参数 formdata: 表单数据 preserve log: 可以查看所有的请求

(2)抓包软件fiddler使用 使用fiddler (3)青花瓷 charles、wireshark

4、urllib urllib是什么?

是一个库,python自带的一个库,功能:模拟浏览器发送http请求的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值