zoukankan      html  css  js  c++  java
  • 爬虫前期知识的储备

    字符串知识点:
    bytes:二进制(互联网上数据都是以二进制的方式传输的)
    str:unicode编码的呈现形式,常用的实现方式是UTF-8
    str转换为bytes的方法:encode()
    bytes转换为str的方法:decode()

    HTTP与HTTPS知识点:
    HTTP:超文本传输协议,默认端口号80,性能更好
    HTTPS:HTTP+SSL(安全套接字层),默认端口号443,安全性更好

    爬虫的概念与流程:
    爬虫是模拟浏览器发送请求,获取响应
    url-->发送请求-->获取响应-->提取url-->提取数据-->保存

    url的形式:
    scheme:协议(http,https,ftp)
    host:服务器的IP地址或者域名(www.baidu.com)
    port:服务器的端口(80或者443)
    path:访问资源的路径,百度搜索爬虫(/s?wd=爬虫&rsv_spt=1&rsv_iqid=0x8d278b16000116e5&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=9&rsv_sug1=8&rsv_sug7=100&rsv_sug2=0&inputT=1138&rsv_sug4=2397)
    query-string:参数,发送给http服务器的数据
    anchor:锚(跳转到网页的指定锚点位置)
    完整的url例子:
    https://www.baidu.com/s?wd=爬虫&rsv_spt=1&rsv_iqid=0x8d278b16000116e5&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=9&rsv_sug1=8&rsv_sug7=100&rsv_sug2=0&inputT=1138&rsv_sug4=2397

    正确填写url:http://www.baidu.com

    错误的例子:www.baidu.com

    HTTP请求头:
    打开F12,点击Network,在ALL列表找到访问的Host,查看request-Headers。
    Host:主机和端口号
    connection:链接类型
    Upgrade-Insecure-Requests:一般为1,升级为HTTPS请求
    User-Agent:浏览器名称,需要模拟这个
    Accept:多个传输文件类型
    Accept-Encoding:文件编解码格式
    Accept-Language:支持的语言类型

    响应状态码:
    200:成功
    302or307:临时转移至新的url
    404:相应失败
    500:服务器内部错误

    1.爬虫是什么:
    抓取网页数据的程序。

    2.爬虫怎么抓取网页数据:
    网页都有自己唯一的URL(统一资源定位符)来进行定位。
    网页都是用HTML(超文本标记语言)来描述页面信息。
    网页都是使用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据。
    ①首先确定需要爬取的网页URL地址。
    ②通过HTTP/HTTPS协议来获取对应的HTML页
    ③提取HTML页面里面有用的数据(反复精练处理数据得到目标数据)。

    3.如何抓取HTML页面:
    ①HTTP请求的处理,urllib、urllib2、requests
    ②处理后的请求可以模拟浏览器发送请求、获取服务器响应的文件。
    ③解析服务器相应的内容:re,xpath、jsonpath、pyquery等。
    使用某一种描述性来给我们需要的数据定义一个匹配规则,
    符合这个规则的数据就会被匹配。比如常用的re,正则表达式。
    ④如何采集动态HTML、验证码的处理。
    通常的动态页面采集:Selenium+PhantomJS(无界面):模拟真实浏览器加载js等非静态数据。
    机器学习库,机器图像识别系统:Tesseract,可以处理简单的验证码,复杂的交给打码平台
    ⑤Scrapy框架:(Scrapy,Pyspider)
    高定制性、高性能(异步网络框架twisted):速度下载快,提供数据存储,数据下载,提取规则等组件。
    ⑥分布式策略:scrapy-redis,以Redis数据库为核心的一套组件
    让Scrapy框架支持分布式的功能,主要在Redis里做请求指纹去重、请求分配、数据临时存储。
    ⑦爬虫-反爬虫-反反爬虫:爬虫最难的就是网站另一边的反爬虫人员。
    User-Agent、代理、验证码、动态数据加载、加密数据等。
    数据价值是否值得费劲做爬虫,机器成本+人力成本>数据价值,一般能爬出来。

  • 相关阅读:
    Shiro 集成Spring 使用 redis时 使用redisTemplate替代jedisPool(五)
    shiro 实现 网站登录记住我功能 学习记录(四)
    magento2根据属性id或code来添加options
    微信小程序-注册程序app.js
    微信小程序-目录结构
    如何在最新的PHP 7.1.0上安装和运行最新的Magento 2.1.3
    添加新的php版本到wamp中
    全局使用php
    PHP设计模式之单例模式
    SourceTree使用
  • 原文地址:https://www.cnblogs.com/Masterpaopao/p/10229492.html
Copyright © 2011-2022 走看看