51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1925|回复: 0
打印 上一主题 下一主题

爬虫相关技术,真的只有这么简单?(下)

[复制链接]
  • TA的每日心情
    无聊
    4 小时前
  • 签到天数: 938 天

    连续签到: 5 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-10-22 15:01:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    开源爬虫的框架、程序
      这里列举一些比较有名的爬虫项目,有些我用过,有些没用过。我平时工作环境是 .net ,对python爬虫也略有研究。
      1.Scrapy , 非常有名的Python爬虫项目,用户数非常多,文档做的也很棒。
      2.Nutch ,Java的,它其实是一个搜索引擎项目,包含了搜索和Web爬虫两个部分。 没用过。
      3.NCrawler, .net 写的。 架构和代码都很棒,建议想学习 .net 爬虫的同学,多研究。可惜没用文档
      Scrapy 额外点评, 在我大概读了下它的源码后,我觉得 Scrapy 在一些地方还是很不错的,比如回调模型。  但是它太臃肿了。对于一个垂直爬虫框架来说的,有很多不必要的设计,比如下载器、中间件。
      暂且就列这几个, 欢迎各位同学补充!

      除了学习爬虫框架,还需要学习哪些技术?
      1. HTTP协议
      主要的包括GET、POST方法。 各种类型Header的了解 ,包括Referer、User-Agent、Cookie、Accept、Encoding、Content-Type等等。
      了解各种HTTP状态码的含义,常见的状态码比如 200表示正常; 301表示重定向,同时会返回新的URL;404表示页面不存在;5xx表示服务器端错误
      了解Cookie的构成,原理。

      2. HTML
      HTML基础知识,了解HTML常用元素, 比如A、IMG等等。
      了解URL的构成,路径、参数,绝对路径、相对路径。
      编码相关,HTML charset, HTML EncodeDecode,URL EncodeDecode,JS EncodeDecode。

      3. 浏览器相关
      HTTP协议、HTML其实都是浏览器相关的。
      了解浏览器,从你输入一个URL,到看到完整的网页,中间发生了什么。相关知识点: URL、DNS、HTTP、Web Server、HTML、JS、CSS、DOM树、JS引擎等等。
      其中DOM树、JavaScript相关知识对于爬虫来说还是相当重要的。有些时候需要反解JS。

      4. 抓包技术
      常用抓包工具,比如Fiddler、浏览器的F12、Wireshark、Microsoft Network Monitor。后面2个属于TCP级别,用的较少。
      通过学习抓包工具使用,可以帮你更好的学习HTTP协议、浏览器相关知识。
      这里强烈、重点推荐 Fiddler。
      大概说下几个常用功能吧, 抓包、保存包数据、Composer(构造HTTP请求)、AutoResponser(自动响应HTTP)、FidderScript 通过编写脚本定制程序、修改HTTP包。
      如果你是 .net 技术相关的,建议反编译下,读下源代码,HTTP协议你就搞定啦。它还提供了 FiddlerCore 库让你可以编写自己抓包程序。

      反爬虫技术
      有爬虫,当然就有反爬虫技术啦。 他们俩一直处于一个对抗、共存的状态。 这是一个非常有意思的过程,对于一些爬虫从业、爱好者来说。
      通常来说,只要你想爬,没有爬取不到的数据,就看你的资源和技术了。 不论是网站还是APP。
      下面列举下常见几种反爬虫技术:
      ·useragent、referer 等常见反爬虫技术(低级)
      ·需要登录 cookie,
      ·封 IP ,限制 IP 访问频率
      ·验证码,包括图像验证码、拖动验证码等等
      ·浏览器端 Javascript 混淆 ajax 参数
      ·其他如 token、随机数
      没关系,虽然反爬技术多,但是只是增加你的成本而已。 不过网站也是有代价的,有些反爬会损害用户体验的。

      有意思的事情:
      许多大的互联网公司,会同时有爬虫部门和反爬虫部门。哈哈哈,是这样的,爬虫部门用来爬别人家的数据,
      反爬部门用来屏蔽别人家的爬虫咯!  举个例子,就像之前的58和赶集(不过现在他们合并了)。

      有意思的项目:
      一步采集  通过算法,计算出一个网页中列表、分页地址。类似于 正文识别 算法。
      这个技术对于需要做大量垂直爬虫的人来说,就很有用图。不用再编写XPath、正则表达式。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 14:10 , Processed in 0.066833 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表