如何在scrapy框架下,用python实现爬虫自动跳转页面来抓去网页内容??

如何在scrapy框架下,用python实现爬虫自动跳转页面来抓去网页内容??,第1张

Scrapy是一个用Python写的Crawler Framework,简单轻巧,并且非常方便。Scrapy使用Twisted这个异步网络库来处理网络通信,架构清晰,并且包含了各种中间件接口,可以灵活地完成各种需求。Scrapy整体架构如下图所示:

根据架构图介绍一下Scrapy中的各大组件及其功能:

Scrapy引擎(Engine):负责控制数据流在系统的所有组建中流动,并在相应动作发生触发事件。

调度器(Scheduler):从引擎接收Request并将它们入队,以便之后引擎请求request时提供给引擎。

下载器(Downloader):负责获取页面数据并提供给引擎,而后提供给Spider。

Spider:Scrapy用户编写用于分析Response并提取Item(即获取到的Item)或额外跟进的URL的类。每个Spider负责处理一个特定(或一些网站)。

Item Pipeline:负责处理被Spider提取出来的Item。典型的处理有清理验证及持久化(例如存储到数据库中,这部分后面会介绍存储到MySQL中,其他的数据库类似)。

下载器中间件(Downloader middlewares):是在引擎即下载器之间的特定钩子(special hook),处理Downloader传递给引擎的Response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能(后面会介绍配置一些中间并激活,用以应对反爬虫)。

Spider中间件(Spider middlewares):是在引擎及Spider之间的特定钩子(special hook),处理Spider的输入(response)和输出(Items即Requests)。其提供了一个简便的机制,通过插入自定义的代码来扩展Scrapy功能。

抓取诊断,抓取成功 (有跳转)是打开上面(没有跳转的网址)就会调整到后面带/index.html  。

网页抓取主要有三个方面:

1、搜集新出现的网页

2、搜集那些在上次搜集后有改变的网页;

3、发现自从上次搜集后已经不再存了的网页,并从库中删除。

针对某一web目录设置默认首页:

Alias /aidd2008 "D:/php/web/aidd2008" 

<Directory "D:/php/web/aidd2008">

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

DirectoryIndex default.php

</Directory>

扩展资料:

<marquee>...</marquee>普通卷动

<marquee behavior=slide>...</marquee>滑动

<marquee behavior=scroll>...</marquee>预设卷动

<marquee behavior=alternate>...</marquee>来回卷动

<marquee direction=down>...</marquee>向下卷动

<marquee direction=up>...</marquee>向上卷动

<marquee direction=right></marquee>向右卷动

<marquee direction='left'></marquee>向左卷动

<marquee loop=2>...</marquee>卷动次数

<marquee width=180>...</marquee>设定宽度

<marquee height=30>...</marquee>设定高度

<marquee bgcolor=FF0000>...</marquee>设定背景颜色

<marquee scrollamount=30>...</marquee>设定卷动距离

<marqueescrolldelay=300>...</marquee>设定卷动时间

注:在HTML5中 废弃了只有部分浏览器支持的marquee标签其它还包括applet、bgsound、blink、等标签。

字体效果

参考资料来源:百度百科-网页抓取

自己写一下吧。

给你个思路:

1、首先分析网页、你要抓取的有用数据

</script><h2>热门专栏</h2>

<dl class="series">

<dt><a href="/column/details/hellopython3.html"><img src="http://avatar.csdn.net/blogpic/20141202154409281.jpg" class="column_logo" /></a></dt>

<dd><a href="/column/details/hellopython3.html">Python 学习笔记</a><span class="visited">浏览量:121855</span></dd>

</dl>

<dl class="series">

<dt><a href="/column/details/datamining.html"><img src="http://avatar.csdn.net/blogpic/20130709094606406.jpg" class="column_logo" /></a></dt>

<dd><a href="/column/details/datamining.html">数据挖掘十大算法系列</a><span class="visited">浏览量:763056</span></dd>

</dl>

<dl class="series">

<dt><a href="/column/details/android-error.html"><img src="http://avatar.csdn.net/blogpic/column.jpg" class="column_logo" /></a></dt>

<dd><a href="/column/details/android-error.html">Android问题集锦</a><span class="visited">浏览量:91315</span></dd>

</dl>

<dl class="series">

<dt><a href="/column/details/linux-zqtsx.html"><img src="http://avatar.csdn.net/blogpic/20141126174249531.jpg" class="column_logo" /></a></dt>

<dd><a href="/column/details/linux-zqtsx.html">Linux技术学习之路</a><span class="visited">浏览量:79713</span></dd>

</dl>

<dl class="series">

<dt><a href="/column/details/niginxsourcelearning.html"><img src="http://avatar.csdn.net/blogpic/20141024145359750.jpg" class="column_logo" /></a></dt>

<dd><a href="/column/details/niginxsourcelearning.html">nginx源码剖析</a><span class="visited">浏览量:188579</span></dd>

</dl>

2、再使用 urllib或urllib2(推荐使用requests)模块,来获取网页原始数据。

3、处理数据。一般使用 re 正则模块

然后你可能会发现 不会requests模块,那就自己找教程学一下。正则也不怎么会,那就找教程学一下。

这个属于很基础的,都是一些静态的数据,而且只有一个页面。

使用 requests 获取数据之后,就成了字符串的处理。使用正则进行匹配。

这些基础的弄好了,就去看 Scrapy框架吧。

那里不会看哪里~~~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7667279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存