c爬虫抓取网页数据(一下新建项目(Project)文件的作用和作用)
优采云 发布时间: 2022-01-04 02:18c爬虫抓取网页数据(一下新建项目(Project)文件的作用和作用)
网络爬虫是在互联网上爬取数据的程序,用它来爬取特定网页的 HTML 数据。虽然我们使用一些库来开发爬虫程序,但是使用框架可以大大提高效率,缩短开发时间。 Scrapy是用Python编写的,轻量级,简单轻便,使用起来非常方便。使用Scrapy可以很方便的完成在线数据采集的工作,它已经为我们完成了很多工作,不需要花大力气去开发。
首先,我们必须回答一个问题。
问:网站安装到爬虫需要几步?
答案很简单,四步:
新建项目(Project):新建一个爬虫项目
清除目标(Items):清除你要爬取的目标
制作蜘蛛:制作蜘蛛并开始抓取网页
存储内容(管道):设计管道来存储抓取的内容
好了,基本流程确定了,接下来就是一步步完成了。
1.新建项目(Project)
在空目录下按住Shift键右键,选择“在此处打开命令窗口”,输入命令:
代码如下:
scrapy startproject 教程
其中,tutorial 为项目名称。
可以看到会创建一个tutorial文件夹,目录结构如下:
代码如下:
教程/
scrapy.cfg
教程/
__init__.py
items.py
pipelines.py
settings.py
蜘蛛/
__init__.py
...
简单介绍一下各个文件的作用:
scrapy.cfg:项目配置文件
tutorial/:项目的Python模块,代码会从这里引用
tutorial/items.py:项目的items文件
tutorial/pipelines.py:项目的流水线文件
tutorial/settings.py:项目设置文件
tutorial/spiders/:蜘蛛存放的目录
2.明确目标(Item)
在 Scrapy 中,items 是用于加载爬取内容的容器,有点像 Python 中的 Dic,它是一个字典,但提供了一些额外的保护以减少错误。
一般来说item可以用scrapy.item.Item类创建,scrapy.item.Field对象用来定义属性(可以理解为类似于ORM的映射关系)。
接下来,我们开始构建项目模型。
首先,我们想要的是:
姓名(姓名)
链接(网址)
说明
修改tutorial目录下的items.py文件,在原来的类之后添加我们自己的类。
因为我们要抓取网站的内容,所以可以命名为DmozItem:
代码如下:
# 在此处定义已抓取项目的模型
#
# 查看文档:
#
从scrapy.item导入项目,字段
class TutorialItem(Item):
# 在此处定义您的项目的字段,例如:
# name = Field()
通过
类 DmozItem(Item):
title = Field()
link = Field()
desc = Field()
乍一看可能有点难以理解,但定义这些项目会让您在使用其他组件时了解您的项目是什么。
Item 可以简单理解为一个封装的类对象。
3.制作蜘蛛(Spider)
做一个爬虫,一般有两个步骤:先爬后取。
也就是说,首先你需要获取整个网页的所有内容,然后取出对你有用的部分。
3.1 次攀爬
Spider 是用户编写的一个类,用于从域(或域组)中获取信息。
它们定义了用于下载的 URL 列表、跟踪链接的方案以及解析 Web 内容以提取项目的方法。
要创建蜘蛛,您必须使用scrapy.spider.BaseSpider 创建一个子类并确定三个必需属性:
name:爬虫的标识名,必须是唯一的。您必须在不同的爬虫中定义不同的名称。
start_urls:抓取的 URL 列表。爬虫从这里开始抓取数据,所以第一次下载数据会从这些url开始。其他子 URL 将从这些起始 URL 继承。
parse():解析方法,调用时将每个URL返回的Response对象作为唯一参数传入,负责解析匹配捕获的数据(解析为item),跟踪更多的URL。
<p>这里可以参考宽度爬虫教程中提到的思路帮助理解,教程传输:【Java】知乎下巴第五集:使用HttpClient工具包和宽度爬虫。