ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬虫介绍

2022-02-26 19:32:44  阅读:123  来源: 互联网

标签:请求 爬虫 介绍 爬取 html 解析 数据


1. 什么是爬虫?

网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据,
比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。

image-20210521191536426

简单的说:就是用代码模拟人的行为,去各各网站溜达、点点按钮、查查数据。或者把看到的数据拿下来。

2. 有什么作用?

通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数据量,给予运营/销售的数据支撑,加快产品发展。

image

image-20210521191932776

2.1 应用领域

  • 批量采集某个领域的招聘数据,对某个行业的招聘情况进行分析
  • 批量采集某个行业的电商数据,以分析出具体热销商品,进行商业决策 • 采集目标客户数据,以进行后续营销
  • 批量爬取腾讯动漫的漫画,以实现脱网本地集中浏览
  • 开发一款火车票抢票程序,以实现自动抢票
  • 爬取评论,舆情监控
  • 爬取说说信息,分析上线时间
  • ...

3. 业界的情况

目前互联网产品竞争激烈,业界大部分都会使用爬虫技术对竞品产品的数据进行挖掘、采集、大数据分析,这是必备手段,并且很多公司都设立了爬虫工程师的岗位


4. 合法性

爬虫是利用程序进行批量爬取网页上的公开信息,也就是前端显示的数据信息。因为信息是完全公开的,所以是合法的。其实就像浏览器一样,浏览器解析响应内容并渲染为页面,而爬虫解析响应内容采集想要的数据进行存储。

但民间流传出下面一段话:

爬虫爬得欢,监狱要坐穿;
数据玩的溜,牢饭吃个够

image-20210521183941756


5. 反爬虫

爬虫很难完全的制止,道高一尺魔高一丈,这是一场没有硝烟的战争,码农VS码农
反爬虫一些手段:

  • 合法检测:请求校验(useragent,referer,接口加签名,等)
  • 小黑屋:IP/用户限制请求频率,或者直接拦截
  • 投毒:反爬虫高境界可以不用拦截,拦截是一时的,投毒返回虚假数据,可以误导竞品决策
  • ... ...

6. 选择一门语言

爬虫可以用各种语言写, C++, Java都可以, 为什么要Python?

首先用C++搞网络开发的例子不多(可能是我见得太少)
然后由于Oracle收购了Sun, Java目前虽然在Android开发上很重要, 但是如果Google官司进展不顺利, 那么很有可能用Go语言替代掉Java来做Android开发. 在这计算机速度高速增长的年代里, 选语言都要看他爹的业绩, 真是稍不注意就落后于时代. 随着计算机速度的高速发展, 某种语言开发的软件运行的时间复杂度的常数系数已经不像以前那么重要, 我们可以越来越偏爱为程序员打造的而不是为计算机打造的语言. 比如Ruby这种传说中的纯种而又飘逸的的OOP语言, 或者Python这种稍严谨而流行库又非常多的语言, 都大大弱化了针对计算机运行速度而打造的特性, 强化了为程序员容易思考而打造的特性. 所以我选择Python

7. 爬虫基本套路

  • 基本流程
    • 目标数据
    • 来源地址
    • 结构分析
      • 具体数据在哪(网站、还是APP)
      • 如何展示的数据
    • 实现构思
    • 操刀编码
  • 基本手段
    • 破解请求限制
      • 请求头设置,如:useragant为有效客户端
      • 控制请求频率(根据实际情景)
      • IP代理
      • 签名/加密参数从html/cookie/js分析
    • 破解登录授权
      • 请求带上用户cookie信息
    • 破解验证码
      • 简单的验证码可以使用识图读验证码第三方库
  • 解析数据
    • HTML Dom解析
      • 正则匹配,通过的正则表达式来匹配想要爬取的数据,如:有些数据不是在html 标签里,而是在html的script 标签的js变量中
      • 使用第三方库解析html dom,比较喜欢类jquery的库
    • 数据字符串
      • 正则匹配(根据情景使用)
      • 转 JSON/XML 对象进行解析

8. python爬虫

  • python写爬虫的优势
    • python语法易学,容易上手
    • 社区活跃,实现方案多可参考
    • 各种功能包丰富
    • 少量代码即可完成强大功能
  • 涉及模块包
    • 请求
      • urllib
      • requests
    • 多线程
      • threading
    • 正则
      • re
    • json解析
      • json
    • html dom解析
      • beautiful soup
    • lxml
      • xpath
    • 操作浏览器
      • selenium

标签:请求,爬虫,介绍,爬取,html,解析,数据
来源: https://www.cnblogs.com/wangyanfu/p/15940230.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有