爬虫

通用爬虫:百度,360,谷歌,搜狐。。。。

原理: 1.抓取网页2.采集数据3.数据处理4.提供检索服务
爬虫:baiduspider
通用爬虫如何抓取新网页:(1)主动提交url(2)设置友情链接(3)百度会和DNS服务商合作,抓取新网站
检索排名:竞价排名;根据pagerpark值、访问量、点击量
robots.txt:http://www.baidu.com/robots.txt

聚焦爬虫
根据特定需求抓取指定数据
思路:
代替浏览器上网
网页特点:(1)网页都有自己唯一的url;
(2)网页内容都是html结构的
(3)使用的都是http,https协议
抓取步骤:
1.给一个url
2.写程序,模拟浏览器访问url
3.解析内容,提取数据
环境 windows环境、linux环境; python3.6 64位 ;pycharm;

需要用到的内容
第三方库: urllib ;requests; bs4
解析网页的知识:正则表达式;bs4;xpath;jsonpath
涉及到动态html:selenium+phantomjs;chromeheadless
scrapy框架:高性能框架使用
scrapy-redis组件:redis,分布式爬虫
涉及到爬虫,反爬虫,反反爬虫的一些内容
UA;代理;验证码;动态页面

http协议那些事

http请求:

  包含:请求行,请求头,请求内容
  请求行:get、post、以及区别
  常见请求头:accept:浏览器通过这个头告诉服务器,他所支持的数据类型

http请求的的细节–消息头

accept:浏览器通过这个头告诉服务器,他所支持的数据类型
Accept-Charset:浏览器通过这个头告诉服务器,他所支持那种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,它所支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,他的语言环境·
Host:浏览器通过这个头告诉服务器,想访问那个主机
If-Modified-Since:浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是那个页面来的防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开还是何持链接
X-Requested-With:代表通过ajax方式进行访问

http常见状态码:

链接: http常见状态代码.