从网站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
分享到:
相关推荐
本教程旨在帮助初学者掌握Python爬虫的基础知识,包括爬虫的概念、爬虫的工具、爬虫的流程、爬虫的常用库等。此外,本教程还将介绍Python爬虫的一些高级技巧和实践案例,以帮助学习者更深入地了解该领域。 在本教程...
爬虫基础知识--数据解析
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt爬虫基础知识概览.txt...
## 爬虫基础知识、爬虫实例与反爬机制详解 在网络世界中,爬虫既是强大的信息搜集工具,也是对网站运营者的挑战。本文将介绍Python爬虫的基础知识、示例以及常见的反爬机制。 ### Python爬虫基础知识 #### 什么是...
关于Python爬虫基础知识、爬虫实例和反爬机制 # Python爬虫基础知识 ## 什么是爬虫? 爬虫(也称为网络爬虫、网页抓取器)是一种自动化程序,用于从互联网上收集信息。它们通过HTTP请求访问网页,并从网页中提取...
爬虫基础.md爬虫基础知识
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
python爬虫基础知识、爬虫实例、反爬机制等资源分享.rar python爬虫基础知识、爬虫实例、反爬机制等资源分享.rar python爬虫基础知识、爬虫实例、反爬机制等资源分享.rar
python 爬虫技术详解 基础知识\爬虫机制等
课程背景什么是网络爬虫?获取数据方式主要有哪些?一、爬虫原理与数据抓取- 4 -1. Python基础语法学习(基础知识)4. 对解析后的数据进行存储(Save
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
Python爬虫基础知识和反爬机制(案例) Python爬虫基础知识和反爬机制(案例) Python爬虫基础知识和反爬机制(案例) Python爬虫基础知识和反爬机制(案例) Python爬虫基础知识和反爬机制(案例) Python爬虫基础...
Python课程1.2-Python基础知识(一).pdf Python课程1.3-Python基础知识(二).pdf Python课程1.4-Python基础金融分析应用.pdf Python课程1.5-成为编程能手:Python知识进阶.pdf Python课程2.1-使用numpy和pandas...
爬虫部分,# 0 爬虫准备工作 - 参考资料 - python网络数据采集, 图灵工业出版 - 精通Python爬虫框架Scrapy, ...- 前提知识 - url - http协议 - web前端,html, css, js - ajax - re, xpath - xml
python爬虫python爬虫基础知识&源码.zippython爬虫基础知识&源码.zip
这篇文章详尽地介绍了Python爬虫的基础知识、实例应用以及反爬机制等内容,为初学者和有经验的开发者提供了宝贵的参考资源。 在基础知识部分,文章深入浅出地讲解了爬虫的工作原理,包括HTTP请求与响应的发送与接收...