`
rensanning
  • 浏览: 3553290 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38230
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607654
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682841
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89568
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:402165
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69772
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91863
社区版块
存档分类
最新评论

基础知识 - 爬虫

 
阅读更多
从网站pull data的时候,就需要做一个爬虫。任何能通过浏览器浏览的内容都可以被抓取。Crawler爬虫、Spider蜘蛛、Scraper采集器三个说的大概都是一个东西,稍有不同。做爬虫需要精通线程、队列、分布式处理。

1)分类
通用爬虫(抓取链接的整个页面)和垂直爬虫(抓取某类网站的指定数据)
*** 一般说的爬虫指的都是垂直爬虫。

2)爬什么
百度、歌曲、电影、图书
百度云盘、BT种子
社交网路(微信、微博、知乎、豆瓣)
股票信息(雪球)
电商信息(天猫、京东)
新闻资讯(腾讯、网易、新浪)
联系人信息(邮件、电话)
等一切想要获取的数据。
*** 更多看知乎上的讨论:能利用爬虫技术做到哪些很酷很有趣很有用的事情?

3)工作原理
a.给爬虫一个种子URL
b.获取页面内容并存储,抽取页面中的URL
c.将新获取到的URL加入到URL队列中,等待处理
d.从URL队列中获取一个URL然后重复步骤b

4)抓取策略
深度优先策略:先访问子级网页,再访问同级网页。
广度优先策略:先访问同级网页,在访问子级网页。
最佳优先策略:优先访问包含有目标信息的网页。

5)抓取数据源
RSS、API、AJAX、Web(Pagination)

6)数据提起
正则匹配、DOM树(CSS path、XPath)
*** 一般爬虫都会爬取多个网站,所以需要对各个网站的解析规则统一管理。

7)数据去重
不重复抓取同样的URL
shingling算法
simHash算法
MD5 Checksum

8)爬取步骤
Crawling 抓取有用的数据源
Downloading 下载数据源的内容
Scraping 提取有用的数据信息(数据检查)
Extracting 提取数据信息中的数据元素(去重 分类)
Formatting 将数据元素整理成其他系统需要的格式
Exporting 将数据导出到其他系统(存储到数据库或建立索引)
*** 特殊网站的处理:模拟登陆、验证码识别、多网站抓取、JS渲染

9)检测爬虫的方法
User-Agent判断
短时间内同一IP的频繁访问
同一处理的多次执行
Honeypots检测:设置一些人类无法访问的连接

10)发爬虫策略
尽可能遵守robots.txt
限制爬取的速度、深度及页面数
减少并发请求数
伪装UA(动态User-Agent)
使用代理IP (IP Rotation, Proxies,Blacklisting)
不要抓取nofollow  display:none 的连接
随机变化抓取模型,不要只执行一个任务
*** 网站认定为爬虫时:出现验证码输入、没有用的信息、HTTP错误
*** 重新进行ADSL拨号,获取新的IP

11)监控
爬虫服务器监控:带宽、CPU、内存、磁盘
爬虫程序的监控:爬虫程序是否正常运行
目标网站的监控:数据源是否可用,数据源结构是否改变
抓取信息的监控:信息是否乱码

12)开源框架
a.框架
Python
  Scrapy https://github.com/scrapy/scrapy
  pyspider https://github.com/binux/pyspider
Java
  crawler4j https://github.com/yasserg/crawler4j
  WebMagic https://github.com/code4craft/webmagic
b.HTTP请求
  urlli或HttpURLConnection、HttpClient
c.HTML解析
  BeautifulSoup https://www.crummy.com/software/BeautifulSoup/
  jsoup https://jsoup.org/
d.JS渲染
  Selenium http://www.seleniumhq.org/
  PhantomJS http://phantomjs.org/
e.其他
  Elasticsearch、Redis

参考:
https://github.com/lorien/awesome-web-scraping
http://www.cnblogs.com/wawlian/archive/2012/06/18/2553061.html
http://www.lanceyan.com/tech/arch/snscrawler.html
分享到:
评论

相关推荐

    爬虫开发阶段-爬虫基础-MongoDB数据库-爬虫Scrapy框架和案例.zip

    案例分析:在提供的压缩包"11-爬虫开发阶段-爬虫基础-MongoDB数据库-爬虫Scrapy框架和案例"中,可能包含实际的Scrapy项目代码和MongoDB使用示例。这些案例可以帮助你更深入地理解如何将Scrapy与MongoDB集成,包括...

    01-爬虫基础.zip

    本教程旨在帮助初学者掌握Python爬虫的基础知识,包括爬虫的概念、爬虫的工具、爬虫的流程、爬虫的常用库等。此外,本教程还将介绍Python爬虫的一些高级技巧和实践案例,以帮助学习者更深入地了解该领域。 在本教程...

    01-爬虫前导知识(3).zip

    这个压缩包“01-爬虫前导知识(3).zip”很显然聚焦在爬虫技术的基础知识上,这是数据挖掘和互联网数据分析领域的一个关键技能。爬虫,也被称为网络爬虫或网页抓取器,是自动提取网页信息的程序,它通过模拟人类浏览...

    01-爬虫_爬虫学习_

    本文将基于"01-爬虫_爬虫学习_"这一主题,深入探讨Python语言中的爬虫基础知识,帮助读者理解爬虫的工作原理以及如何在实践中应用。 首先,我们需要了解什么是爬虫。爬虫,又称为网络蜘蛛或网络机器人,是一种自动...

    爬虫(1) - 爬虫基础入门理论篇.doc

    该课程主要分为爬虫基础知识、爬虫技术储备、网络基础等几个部分。 1. 爬虫基础知识 爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。爬虫可以用于搜索引擎、数据分析、人工智能、薅羊毛、抢车票...

    七月在线-爬虫项目班课件全集

    总的来说,"七月在线-爬虫项目班课件全集"是一个全面且系统的Python爬虫教程,不仅覆盖了爬虫开发的基础知识,还注重实战技能的培养。对于想要从事数据挖掘、数据分析或者网络自动化工作的学习者来说,这是一个非常...

    爬虫基础知识概览.txt

    爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt...

    03爬虫基础知识-数据解析

    本节我们将深入探讨“03爬虫基础知识-数据解析”这一主题,包括数据解析的重要性和常用方法。 一、数据解析的重要性 1. 提取有价值信息:网络上的数据海量且杂乱,通过数据解析可以将有用信息从无结构或半结构化的...

    BIT-爬虫课件

    1. **爬虫基础**:介绍爬虫的基本原理和工作流程,包括HTTP/HTTPS协议的理解、URL结构解析、HTML与XML的基础知识,以及网页抓取的基本方法。 2. **Python爬虫框架**:讲解Python中常用的爬虫库,如BeautifulSoup、...

    Python-爬虫轻型框架

    在这个框架中,主要涉及到的知识点包括任务队列、保存队列、请求处理以及结果存储等核心概念。 首先,任务队列是爬虫框架的核心组成部分之一,它主要用于存放待爬取的URL或HTTP请求。当一个爬虫项目启动时,开发者...

    51商城的程序使用说明-爬虫

    总结,51商城的程序使用说明-爬虫主要涵盖了爬虫的基础知识、环境配置、代码编写、反爬策略以及数据处理等多个方面。理解并实践这些步骤,将能有效地从51商城获取并利用所需数据。但请始终确保合法、合规地进行爬虫...

    lesson7-爬虫入门.rar_python 爬虫_thisn6q_爬虫入门

    "lesson7-爬虫入门.rar"这个压缩包文件显然是一个关于Python爬虫基础的教程资源,适合初学者学习。 首先,我们要了解什么是网络爬虫。网络爬虫,也叫网页蜘蛛或网络机器人,是一种自动浏览互联网并抓取网页信息的...

    Python-爬虫基础案例.pdf

    ### Python 网页爬虫基础知识与实践案例详解 #### 概述 本文将详细介绍一个基础的Python网页爬虫项目的构建过程。此爬虫旨在从指定网站抓取信息,并将其保存为CSV文件格式。我们将使用Python语言,结合`requests`、...

    爬虫基础.md爬虫基础知识

    爬虫基础.md爬虫基础知识

    python爬虫-爬虫项目实战之拉勾网爬虫.zip

    首先,我们需要了解Python爬虫的基础知识。Python有许多强大的库用于网络爬虫,如BeautifulSoup、Scrapy、requests等。在这个项目中,我们可能主要会用到requests库来发送HTTP请求获取网页内容,以及BeautifulSoup库...

    python爬虫基础知识

    python爬虫基础知识python爬虫基础知识python爬虫基础知识python爬虫基础知识python爬虫基础知识

    01-爬虫的基本知识.pdf

    学习爬虫不仅需要理解上述基础知识,还需要掌握如何使用浏览器开发者工具查看网络请求,以及如何使用socket编程来实现自定义的网络请求。此外,还需关注反爬虫策略,如验证码、IP限制等,并学习如何应对这些问题,以...

    python爬虫基础知识及爬虫实例.zip

    本压缩包文件"python爬虫基础知识及爬虫实例.zip"包含了一份名为"python爬虫基础知识及爬虫实例.py"的源代码文件,旨在帮助初学者理解Python爬虫的基本概念和实践操作。 首先,让我们深入了解Python爬虫的基础知识...

    python-django-flask-爬虫

    本教程将深入探讨Python的基础语法、Django框架、Flask框架以及爬虫技术,通过实例代码帮助你掌握这些核心知识点。 一、Python基础语法 Python的基础语法包括变量赋值、数据类型(如整型、浮点型、字符串、布尔型、...

    《专业实验I-爬虫》实验报告-北邮2018.pdf

    这三个实验覆盖了理论知识与实践操作,既锻炼了学生的数学分析能力,也提升了他们的编程和数据处理技能。通过傅里叶变换实验,学生掌握了信号处理的基础;通过采样定律实验,他们理解了数字信号与模拟信号转换的关键...

Global site tag (gtag.js) - Google Analytics