python爬虫能干什么,第1张

python爬虫就是模拟浏览器打开网页,获取网页中想要的那部分数据。利用爬虫我们可以抓取商品信息、评论及销量数据;可以抓取房产买卖及租售信息;可以抓取各类职位信息等。

爬虫:

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

(推荐教程:Python入门教程)

通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据。

python爬虫能做什么?

从技术层面来说就是通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(、视频) 爬到本地,进而提取自己需要的数据存放起来使用。

利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息,比如:

爬取知乎优质答案,为你筛选出各话题下最优质的内容。

抓取淘宝、京东商品、评论及销量数据,对各种商品及用户的消费场景进行分析。

抓取房产买卖及租售信息,分析房价变化趋势、做不同区域的房价分析。

爬取各类职位信息,分析各行业人才需求情况及薪资水平。

爬虫的本质:

爬虫的本质就是模拟浏览器打开网页,获取网页中我们想要的那部分数据。

无法做到。目前网站就是只能显示100页。这是受技术和数据库以及服务器的限制。连商品排名都只能显示100页。
抓取一件商品的所有评论恐怕也无法做到。因为淘宝亚马逊之类都有验证措施。

Java爬虫框架WebMagic简介及使用

一、介绍

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。

二、概览

WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能(例如注解模式编写爬虫等)。
WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。

21 WebMagic的四个组件

Downloader

Downloader负责从互联网上下载页面,以便后续处理。WebMagic默认使用了Apache >

PageProcessor

PageProcessor负责解析页面,抽取有用信息,以及发现新的链接。WebMagic使用Jsoup作为HTML解析工具,并基于其开发了解析XPath的工具Xsoup。在这四个组件中,PageProcessor对于每个站点每个页面都不一样,是需要使用者定制的部分。

Scheduler

Scheduler负责管理待抓取的URL,以及一些去重的工作。WebMagic默认提供了JDK的内存队列来管理URL,并用集合来进行去重。也支持使用Redis进行分布式管理。除非项目有一些特殊的分布式需求,否则无需自己定制Scheduler。

Pipeline

Pipeline负责抽取结果的处理,包括计算、持久化到文件、数据库等。WebMagic默认提供了“输出到控制台”和“保存到文件”两种结果处理方案。Pipeline定义了结果保存的方式,如果你要保存到指定数据库,则需要编写对应的Pipeline。对于一类需求一般只需编写一个Pipeline。

22 用于数据流转的对象

Request

Request是对URL地址的一层封装,一个Request对应一个URL地址。它是PageProcessor与Downloader交互的载体,也是PageProcessor控制Downloader唯一方式。

Page

Page代表了从Downloader下载到的一个页面——可能是HTML,也可能是JSON或者其他文本格式的内容。Page是WebMagic抽取过程的核心对象,它提供一些方法可供抽取、结果保存等。

ReusltItems

ReusltItems相当于一个Map,它保存PageProcessor处理的结果,供Pipeline使用。它的API与Map很类似,值得注意的是它有一个字段skip,若设置为true,则不应被Pipeline处理。

23 控制爬虫运转的引擎—Spider

Spider是WebMagic内部流程的核心。Downloader、PageProcessor、Scheduler、Pipeline都是Spider的一个属性,这些属性是可以自由设置的,通过设置这个属性可以实现不同的功能。Spider也是WebMagic *** 作的入口,它封装了爬虫的创建、启动、停止、多线程等功能。
对于编写一个爬虫,PageProcessor是需要编写的部分,而Spider则是创建和控制爬虫的入口。

24 WebMagic项目组成

WebMagic项目代码包括几个部分,在根目录下以不同目录名分开。它们都是独立的Maven项目。
WebMagic主要包括两个包,这两个包经过广泛实用,已经比较成熟:

webmagic-core
webmagic-core是WebMagic核心部分,只包含爬虫基本模块和基本抽取器。

webmagic-extension

webmagic-extension是WebMagic的主要扩展模块,提供一些更方便的编写爬虫的工具。包括注解格式定义爬虫、JSON、分布式等支持。

三、 基本的爬虫

31 爬虫的流程 (可以参考上边的框架架构图)

Downloader-页面下载

页面下载是一切爬虫的开始。

大部分爬虫都是通过模拟>

webmagic使用了>

PageProcessor-页面分析及链接抽取

Selector是webmagic为了简化页面抽取开发的独立模块,是整个项目中我最得意的部分。这里整合了CSS Selector、XPath和正则表达式,并可以进行链式的抽取,很容易就实现强大的功能。即使你使用自己开发的爬虫工具,webmagic的Selector仍然值得一试

Jsoup

HtmlParser

Apache tika

HtmlCleaner与Xpath

这里说的页面分析主要指HTML页面的分析。页面分析可以说是垂直爬虫最复杂的一部分,在webmagic里,PageProcessor是定制爬虫的核心。通过编写一个实现PageProcessor接口的类,就可以定制一个自己的爬虫

HTML分析是一个比较复杂的工作,Java世界主要有几款比较方便的分析工具:

webmagic的Selector

Scheduler-URL管理

URL管理的问题可大可小。对于小规模的抓取,URL管理是很简单的。我们只需要将待抓取URL和已抓取URL分开保存,并进行去重即可。使用JDK内置的集合类型Set、List或者Queue都可以满足需要。如果我们要进行多线程抓取,则可以选择线程安全的容器,例如LinkedBlockingQueue以及ConcurrentHashMap。因为小规模的URL管理非常简单,很多框架都并不将其抽象为一个模块,而是直接融入到代码中。但是实际上,抽象出Scheduler模块,会使得框架的解耦程度上升一个档次,并非常容易进行横向扩展,这也是我从scrapy中学到的。

Pipeline-离线处理和持久化

Pipeline其实也是容易被忽略的一部分。大家都知道持久化的重要性,但是很多框架都选择直接在页面抽取的时候将持久化一起完成,例如crawer4j。但是Pipeline真正的好处是,将页面的在线分析和离线处理拆分开来,可以在一些线程里进行下载,另一些线程里进行处理和持久化。

32 使用WebMagic爬取一个壁纸网站

首先引入WebMagic的依赖,webmagic-core-{version}jar和webmagic-extension-{version}jar。在项目中添加这两个包的依赖,即可使用WebMagic。
maven中引入依赖jar包

<dependency>
   <groupId>uscodecraft</groupId>
   <artifactId>webmagic-core</artifactId>
   <version>053</version>
</dependency>
<dependency>
   <groupId>uscodecraft</groupId>
   <artifactId>webmagic-extension</artifactId>
   <version>053</version>
</dependency>1234567891012345678910

不使用maven的用户,可以去>robotstxt文件。
大家可以看到,易淘宝的爬虫名称是;EtaoSpider
。京东的robotstxt文件设置的是直接阻止了一切关于易淘宝的爬虫进行对京东网站的访问。
1、淘宝利用爬虫信息引导出京东的销量。
2、淘宝利用比较购物以及消费者的评论引导消费者在淘宝上进行消费。
3、利用爬虫信息观察顾客的购买搜索行为习惯,引导消费者在淘宝进行购买商品。
4、通过与京东一些商品的价格比较,用低价进行与京东竞价。
以上意见仅供参考,属于个人意见。

后羿采集器能采集淘宝、京东、拼多多等更多的网站。后羿采集器是一款基于人工智能技术的网页采集器,只需要输入网址就能够自动识别网页数据,无需配置即可完成数据采集,是业内首家支持三种 *** 作系统(包括Windows、Mac和Linux)的网络爬虫软件。


DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
乐在赚 » python爬虫能干什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情