外贸网站屏蔽国内ip,百度云备案域名购买,免费提供空间的网站,网页设置前言
在大数据和网络爬虫领域#xff0c;Scrapy 是一个功能强大且广泛使用的开源爬虫框架。它能够帮助我们快速地构建爬虫项目#xff0c;并高效地从各种网站中提取数据。在本篇文章中#xff0c;我将带大家从零开始使用 Scrapy 框架#xff0c;构建一个简单的爬虫项目Scrapy 是一个功能强大且广泛使用的开源爬虫框架。它能够帮助我们快速地构建爬虫项目并高效地从各种网站中提取数据。在本篇文章中我将带大家从零开始使用 Scrapy 框架构建一个简单的爬虫项目爬取 豆瓣电影 Top 250 的电影信息。
Scrapy 官方文档Scrapy Documentation
豆瓣电影 Top 250 豆瓣电影 Top 250
本文的爬虫项目配置如下
系统WindowsPython 版本3.8.6开发环境PyCharm
如果你使用的是其他系统或 IDE也可以按照本文的步骤进行操作只需根据自己的环境做出相应调整即可。
环境准备
1. 安装 Python
在使用 Scrapy 之前确保你已经安装了 Python。如果没有请先安装 Python 3.6 版本。你可以访问 Python 官方网站 下载并安装最新版的 Python。
安装完成后打开命令行窗口输入以下命令检查是否安装成功
python --version2. 安装 Scrapy
确认安装了 Python 后你可以使用 pip 安装 Scrapy。pip 是 Python 的包管理工具它能够帮助我们安装各种第三方库。
在命令行窗口输入以下命令
pip install scrapy安装完成后可以通过以下命令检查 Scrapy 是否安装成功
scrapy version3. 安装 Anaconda可选
如果你更喜欢使用虚拟环境管理工具可以选择安装 Anaconda它能够帮助你更方便地管理项目中的 Python 依赖。你可以从 Anaconda 官方网站 下载并安装 Anaconda。
使用 Anaconda 创建一个虚拟环境并激活环境后再安装 Scrapy
conda create -n scrapy_env python3.8
conda activate scrapy_env
pip install scrapy4. 创建 Scrapy 项目
安装 Scrapy 完成后我们可以开始创建一个新的 Scrapy 项目。在终端中进入你希望存放项目的目录然后运行以下命令
scrapy startproject DoubanProject这将创建一个名为 DoubanProject 的 Scrapy 项目其中包含 Scrapy 默认的文件夹和文件结构
DoubanProject/
├── DoubanProject/
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── settings.py
└── spiders/├── __init__.py└── douban.py爬虫的编写
1. 编写 items.py
在 items.py 文件中定义我们要爬取的数据字段。豆瓣 Top 250 页面包含电影的排名、名称、简介、评分、评价人数和电影海报链接等信息因此我们需要定义相应的数据字段。
import scrapyclass DoubanprojectItem(scrapy.Item):rank scrapy.Field() # 电影排名movie_name scrapy.Field() # 电影名称movie_introduction scrapy.Field() # 电影简介picture scrapy.Field() # 电影海报链接movie_rating scrapy.Field() # 电影评分evaluators scrapy.Field() # 评价人数2. 编写爬虫文件 douban.py
在 spiders 目录下我们需要创建一个爬虫文件 douban.py 来定义具体的爬虫逻辑。Scrapy 通过 Spider 类来定义爬虫它包含了爬虫的名称、允许访问的域名、起始 URL以及如何解析和处理抓取到的数据。
2.1 定义爬虫文件
首先在 spiders 目录下创建 douban.py 文件编写代码如下
import scrapy
from scrapy import Selector, Request
from ..items import DoubanprojectItem # 导入之前定义的 item 数据结构2.2 创建 DoubanSpider 类
在 douban.py 文件中定义一个爬虫类 DoubanSpider继承自 scrapy.Spider。name 是爬虫的名字用于在命令行中启动爬虫allowed_domains 是允许爬虫访问的域名start_urls 是爬虫开始爬取的页面 URL 列表。
class DoubanSpider(scrapy.Spider):name douban # 爬虫的唯一名称allowed_domains [movie.douban.com] # 允许的域名范围start_urls [https://movie.douban.com/top250] # 爬虫从这个 URL 开始抓取2.3 编写 parse 方法
parse 是 Scrapy 中的默认解析方法爬虫启动后Scrapy 会自动下载 start_urls 中的页面并将响应传递给这个方法。在这里我们会使用 XPath 来提取电影信息。 首先使用 Selector 对页面进行解析。 然后使用 XPath 提取页面中所有电影的列表遍历每部电影并提取需要的字段信息如电影的排名、名称、简介、评分等。 最后通过 yield 返回提取到的数据。 def parse(self, response):sel Selector(response) # 使用 Selector 解析 HTML 响应movie_items sel.xpath(//div[classarticle]//ol[classgrid_view]/li) # 提取所有电影条目2.4 提取电影信息
接下来我们需要提取每部电影的具体信息。我们定义了 DoubanprojectItem 来存储每部电影的字段信息并通过 XPath 提取页面中的对应字段。 for movie in movie_items:item DoubanprojectItem() # 创建 DoubanprojectItem 实例# 提取电影的各个字段item[rank] movie.xpath(.//div[classpic]/em/text()).extract_first() # 电影排名item[movie_name] movie.xpath(.//div[classhd]//span[1]/text()).extract_first() # 电影名称item[movie_introduction] movie.xpath(.//div[classbd]//span[classinq]/text()).extract_first(default无) # 电影简介item[picture] movie.xpath(.//div[classpic]/a/img/src).extract_first() # 电影海报链接item[movie_rating] movie.xpath(.//div[classstar]/span[2]/text()).extract_first() # 电影评分item[evaluators] movie.xpath(.//div[classstar]/span[4]/text()).extract_first() # 评价人数# 返回提取到的 itemyield item2.5 处理分页
豆瓣电影的 Top 250 列表分成了 10 页每页显示 25 部电影。在爬取完第一页后我们需要继续爬取剩下的页面。通过提取页面底部的“下一页”链接来实现分页抓取。 # 获取下一页的链接next_link sel.xpath(//span[classnext]/link/href).extract_first()if next_link:# 如果存在下一页链接构造请求并递归调用 parse 方法yield Request(urlresponse.urljoin(next_link), callbackself.parse)2.6 完整的 douban.py 文件
完整的爬虫文件 douban.py 如下
import scrapy
from scrapy import Selector, Request
from ..items import DoubanprojectItem # 导入 item 数据结构class DoubanSpider(scrapy.Spider):name douban # 爬虫的名称allowed_domains [movie.douban.com] # 允许的域名start_urls [https://movie.douban.com/top250] # 爬虫起始页面def parse(self, response):sel Selector(response) # 解析页面movie_items sel.xpath(//div[classarticle]//ol[classgrid_view]/li) # 获取电影条目列表for movie in movie_items:item DoubanprojectItem() # 创建 item 实例# 提取电影信息item[rank] movie.xpath(.//div[classpic]/em/text()).extract_first()item[movie_name] movie.xpath(.//div[classhd]//span[1]/text()).extract_first()item[movie_introduction] movie.xpath(.//div[classbd]//span[classinq]/text()).extract_first(default无)item[picture] movie.xpath(.//div[classpic]/a/img/src).extract_first()item[movie_rating] movie.xpath(.//div[classstar]/span[2]/text()).extract_first()item[evaluators] movie.xpath(.//div[classstar]/span[4]/text()).extract_first()yield item # 返回 item# 处理分页next_link sel.xpath(//span[classnext]/link/href).extract_first()if next_link:yield Request(urlresponse.urljoin(next_link), callbackself.parse)详细解释
Spider 类定义name 确定了爬虫的名字allowed_domains 确定了允许的域名start_urls 列出了爬虫的起始页面。parse 方法通过 Selector 解析页面使用 XPath 提取电影的详细信息并存储到 DoubanprojectItem 对象中。分页处理通过检查是否有下一页链接使用 Request 对象进行递归抓取直到所有页面的数据都被抓取。 3. 编写 pipelines.py
在 Scrapy 中pipelines.py 文件用于处理爬取到的数据。这里我们要将抓取到的豆瓣电影数据保存到 Excel 文件中。为了实现这一点我们会使用 Python 的 openpyxl 库它是一个专门用于处理 Excel 文件的库。
3.1 安装 openpyxl
首先确保你已经安装了 openpyxl如果没有安装可以通过 pip 进行安装
pip install openpyxl3.2 创建 DoubanprojectPipeline 类
DoubanprojectPipeline 类将处理从爬虫传递过来的数据并将这些数据写入 Excel 文件。Scrapy 中的 Pipeline 类通常有三个方法open_spider、process_item 和 close_spider。
open_spider当爬虫启动时调用一般用于初始化一些资源。process_item每当爬虫抓取到一个数据项item时都会调用此方法来处理该项数据。close_spider当爬虫结束时调用用于保存文件或释放资源。
以下是详细的代码解释
import openpyxl # 导入处理 Excel 文件的库
from .items import DoubanprojectItem # 导入定义好的 Item 数据结构class DoubanprojectPipeline:def __init__(self):初始化方法在爬虫开始时被调用初始化 Excel 工作簿和表格。self.wb openpyxl.Workbook() # 创建一个新的 Excel 工作簿self.sheet self.wb.active # 获取工作簿的活动表格self.sheet.title 豆瓣电影Top250 # 设置表格的标题# 在第一行写入表头表示每列的意义self.sheet.append((电影排名, 电影名称, 电影简介, 电影海报, 电影评分, 观影人数))def open_spider(self, spider):当爬虫被启动时调用该方法。:param spider: 当前运行的爬虫对象print(开始爬虫...) # 可以选择在控制台输出提示信息表示爬虫开始运行def process_item(self, item: DoubanprojectItem, spider):处理每个爬取到的数据项item将其保存到 Excel 文件中。:param item: 爬取到的电影数据:param spider: 当前运行的爬虫对象:return: 返回处理后的 item# 将每部电影的信息以一行的形式写入 Excelself.sheet.append((item[rank], # 电影排名item[movie_name], # 电影名称item[movie_introduction], # 电影简介item[picture], # 电影海报链接item[movie_rating], # 电影评分item[evaluators] # 观影人数))# 返回 item 是 Scrapy Pipeline 的标准流程方便后续可能有其他 pipeline 处理return itemdef close_spider(self, spider):当爬虫关闭时调用保存 Excel 文件。:param spider: 当前运行的爬虫对象print(爬虫结束....) # 输出爬虫结束的提示# 保存 Excel 文件到指定路径self.wb.save(豆瓣电影数据.xlsx)3.3 详细解释代码 __init__ 方法 该方法在爬虫启动时初始化创建一个 Excel 工作簿 (self.wb)并获取活动表 (self.sheet)。使用 self.sheet.title 为表格设置一个标题在这里我们将其命名为 “豆瓣电影Top250”。使用 self.sheet.append() 将表头写入 Excel 文件表头包括 “电影排名”、“电影名称”、“电影简介”、“电影海报”、“电影评分” 和 “观影人数”。 open_spider 方法 在爬虫启动时执行可以在这里做一些初始化操作比如在控制台输出一个提示信息“开始爬虫…”。 process_item 方法 每次爬虫抓取到一个新的电影数据项item时Scrapy 会自动调用此方法来处理数据。self.sheet.append() 将数据项中的字段值如排名、名称、简介等写入 Excel 文件中的一行。返回 item 是 Scrapy Pipeline 的标准流程以便数据继续传递给其他可能的 pipeline。 close_spider 方法 当爬虫结束时Scrapy 会调用此方法来进行收尾工作。这里使用 self.wb.save(豆瓣电影数据.xlsx) 将数据保存到 豆瓣电影数据.xlsx 文件中并在控制台输出“爬虫结束…”提示。
3.4 设置 pipelines
为了让 Scrapy 使用我们的 DoubanprojectPipeline我们需要在 settings.py 中启用该 Pipeline。
打开 settings.py 文件并添加以下代码
# 启用我们定义的 Pipeline
ITEM_PIPELINES {DoubanProject.pipelines.DoubanprojectPipeline: 300,
}300 是该 Pipeline 的优先级数字越小优先级越高。这里我们设置为 300表示优先处理该 Pipeline。
通过这个 pipelines.py 文件爬取到的豆瓣电影数据将会被逐条写入 Excel 文件。当爬虫结束时完整的 Excel 文件就已经生成好了里面包含了所有抓取到的电影信息。 4. 配置 settings.py
为了确保爬虫能够顺利地抓取豆瓣的电影数据并避免触发反爬机制我们需要对 settings.py 文件进行配置。settings.py 文件是 Scrapy 项目的全局配置文件所有的爬虫行为如请求频率、请求头信息、爬虫管道等都在这里进行设置。下面我们详细解释如何配置 settings.py。
4.1 配置 BOT_NAME
BOT_NAME 定义了 Scrapy 项目的名称Scrapy 会根据这个名称来识别项目。你可以将其保持默认或根据你的项目需求进行修改
BOT_NAME DoubanProject4.2 配置 SPIDER_MODULES 和 NEWSPIDER_MODULE
SPIDER_MODULES 和 NEWSPIDER_MODULE 定义了爬虫的存放路径和默认新爬虫生成位置。 SPIDER_MODULES: 该配置定义了存放所有爬虫的模块。在这里所有爬虫都存放在 DoubanProject.spiders 目录下。 NEWSPIDER_MODULE: 该配置定义了新生成的爬虫的默认存放位置。 SPIDER_MODULES [“DoubanProject.spiders”] NEWSPIDER_MODULE “DoubanProject.spiders”
4.3 设置 User-Agent
User-Agent 是 HTTP 请求头中的一个重要字段它告诉目标服务器你的请求来自哪个浏览器或客户端。很多网站会通过检测 User-Agent 来区分正常用户和爬虫。为了避免被识别为爬虫我们可以将 User-Agent 字段伪装成常见的浏览器。
USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36在上面的配置中我们将 User-Agent 伪装成了 Google Chrome 浏览器。这有助于提高爬虫的隐蔽性避免被目标网站的反爬虫机制识别和封禁。
4.4 禁用 robots.txt 规则
许多网站使用 robots.txt 文件来限制爬虫访问某些页面。为了能够抓取豆瓣的内容我们需要将 Scrapy 的 ROBOTSTXT_OBEY 设置为 False忽略 robots.txt 规则。
ROBOTSTXT_OBEY False注意尽管我们在这里禁用了 robots.txt实际开发时应尽量遵循网站的爬虫规则避免给网站带来过多负担。 4.5 设置下载延迟 DOWNLOAD_DELAY
为了避免触发网站的反爬虫机制建议设置一个下载延迟。DOWNLOAD_DELAY 定义了每个请求之间的时间间隔防止爬虫请求频率过高给服务器带来过大压力。通常1-3 秒的延迟是合理的选择。
DOWNLOAD_DELAY 2 # 设置每个请求之间的时间间隔为 2 秒你还可以设置 RANDOMIZE_DOWNLOAD_DELAY 为 True让每次请求之间的延迟时间随机变化这样可以进一步避免被反爬虫机制发现。
RANDOMIZE_DOWNLOAD_DELAY True4.6 启用 Cookies
有些网站会使用 Cookies 来跟踪用户的行为和状态。如果不启用 Cookies有时会导致爬取数据不完整或被限制访问。我们在这里启用 Scrapy 的 COOKIES_ENABLED 设置
COOKIES_ENABLED True这将允许爬虫在请求过程中自动处理 Cookies。
4.7 启用 Item Pipelines
Item Pipelines 负责处理爬虫提取到的数据并将其保存到不同的输出格式中。在这里我们已经在 pipelines.py 中编写了一个 Pipeline 来将电影数据保存到 Excel 文件中。接下来需要在 settings.py 中启用这个 Pipeline。
ITEM_PIPELINES {DoubanProject.pipelines.DoubanprojectPipeline: 300,
}数字 300 代表优先级Scrapy 会根据优先级的数字大小依次执行不同的 Pipelines。数字越小优先级越高。
4.8 配置其他默认设置
最后确保 Scrapy 的其他设置与最新版本兼容。这里我们设置了 REQUEST_FINGERPRINTER_IMPLEMENTATION 和 TWISTED_REACTOR它们是 Scrapy 的内部配置用于确保兼容性和性能优化。
# 设置未来兼容性
REQUEST_FINGERPRINTER_IMPLEMENTATION 2.7
TWISTED_REACTOR twisted.internet.asyncioreactor.AsyncioSelectorReactor
FEED_EXPORT_ENCODING utf-8 # 确保导出文件的编码为 UTF-8修改后的 settings.py 文件完整代码
BOT_NAME DoubanProjectSPIDER_MODULES [DoubanProject.spiders]
NEWSPIDER_MODULE DoubanProject.spiders# 伪装成正常的浏览器
USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36# 不遵守 robots.txt 规则
ROBOTSTXT_OBEY False# 启用 Cookies
COOKIES_ENABLED True# 配置下载延迟避免被封禁
DOWNLOAD_DELAY 2 # 每次请求间隔2秒
RANDOMIZE_DOWNLOAD_DELAY True # 随机化下载延迟# 配置默认请求头模拟真实用户
DEFAULT_REQUEST_HEADERS {Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,*/*;q0.8,Accept-Language: zh-CN,zh;q0.9,Referer: https://www.douban.com/,
}# 启用下载中间件
DOWNLOADER_MIDDLEWARES {scrapy.downloadermiddlewares.useragent.UserAgentMiddleware: None,scrapy.downloadermiddlewares.cookies.CookiesMiddleware: 700,
}# 启用 Item Pipelines
ITEM_PIPELINES {DoubanProject.pipelines.DoubanprojectPipeline: 300,
}# 启用 AutoThrottle 扩展控制并发请求速度
AUTOTHROTTLE_ENABLED True
AUTOTHROTTLE_START_DELAY 5 # 初始延迟
AUTOTHROTTLE_MAX_DELAY 60 # 最大延迟
AUTOTHROTTLE_TARGET_CONCURRENCY 1.0 # 每个服务器的并发请求数量
AUTOTHROTTLE_DEBUG False # 禁用调试信息显示# HTTP缓存设置可选
HTTPCACHE_ENABLED False# 设置未来兼容性
REQUEST_FINGERPRINTER_IMPLEMENTATION 2.7
TWISTED_REACTOR twisted.internet.asyncioreactor.AsyncioSelectorReactor
FEED_EXPORT_ENCODING utf-8终端运行爬虫 douban
scrapy crawl douban运行后爬虫将抓取豆瓣电影 Top 250 的数据并保存到 豆瓣电影数据.xlsx 文件中。
导入 MySQL 数据库
在本节中我们将介绍如何将抓取的豆瓣电影数据保存到 MySQL 数据库中。Scrapy 提供了灵活的管道机制可以将抓取的数据导入到多种存储平台。通过下面的步骤我们将爬取的数据存储到 MySQL 数据库中。
1. 在 MySQL 中创建数据库
首先确保你已经安装并启动了 MySQL 数据库。在 MySQL 中我们需要创建一个数据库和对应的数据表来存储抓取到的电影信息。
创建数据库
-- MySQL 8.0 及以上版本
create database douban_movie;-- 如果你使用的是 MySQL 8.0 以下版本请使用以下命令指定编码为 utf8mb4
create database douban_movie default charsetutf8mb4;切换到你创建的数据库
use douban_movie;2. 在数据库中创建数据表
在刚刚创建的 douban_movie 数据库中我们需要创建一个表 movie_data 来存储爬取到的电影信息。表结构如下
CREATE TABLE movie_data(rank varchar(20), -- 电影排名movie_name varchar(30), -- 电影名称movie_introduction varchar(100), -- 电影简介picture varchar(100), -- 电影海报链接movie_rating varchar(100), -- 电影评分evaluators varchar(100) -- 评价人数
) character setutf8;3. 修改 pipelines.py将数据保存到 MySQL
接下来我们需要在 pipelines.py 文件中编写代码将爬取到的数据保存到 MySQL 数据库中。我们会使用 pymysql 库来操作 MySQL。
安装 pymysql
pip install pymysql然后在 pipelines.py 文件中添加如下代码
import pymysql
from .items import DoubanprojectItem # 导入定义好的 item 数据结构class MysqlPipeline:def __init__(self, host, database, user, password, port):初始化 MySQL 数据库连接配置self.host hostself.database databaseself.user userself.password passwordself.port portclassmethoddef from_crawler(cls, crawler):从 Scrapy 项目的 settings.py 文件中读取 MySQL 的连接信息return cls(hostcrawler.settings.get(MYSQL_HOST),databasecrawler.settings.get(MYSQL_DATABASE),usercrawler.settings.get(MYSQL_USER),passwordcrawler.settings.get(MYSQL_PASSWORD),portcrawler.settings.get(MYSQL_PORT))def open_spider(self, spider):爬虫启动时打开数据库连接print(打开数据库连接....)self.db pymysql.connect(hostself.host, userself.user, passwordself.password, databaseself.database,portself.port, charsetutf8)self.cursor self.db.cursor()def close_spider(self, spider):爬虫结束时关闭数据库连接print(关闭数据库连接...)self.db.close()def process_item(self, item, spider):将爬取到的 item 存储到 MySQL 数据库data dict(item)keys , .join(data.keys()) # 获取字段名values , .join([%s] * len(data)) # 构建 SQL 中的值部分sql insert into movie_data (%s) values (%s) % (keys, values)self.cursor.execute(sql, tuple(data.values())) # 执行 SQL 插入语句self.db.commit() # 提交事务return item # 继续传递给下一个 pipeline如果有的话4. 配置 settings.py 文件
为了让 Scrapy 能够将数据写入 MySQL我们需要在 settings.py 文件中进行一些配置。首先启用 MysqlPipeline然后配置 MySQL 数据库的连接信息。
在 settings.py 中添加如下内容
# 启用 MysqlPipeline 管道将数据存入 MySQL
ITEM_PIPELINES {DoubanProject.pipelines.MysqlPipeline: 301,
}# 配置 MySQL 数据库的连接信息
MYSQL_HOST localhost # MySQL 服务器的地址
MYSQL_DATABASE douban_movie # 使用的数据库名
MYSQL_PORT 3306 # MySQL 端口号默认是3306
MYSQL_USER root # 你的 MySQL 用户名
MYSQL_PASSWORD your password # 你的 MySQL 密码5. 运行爬虫并将数据导入 MySQL
现在你可以通过以下命令运行爬虫
scrapy crawl douban等待爬虫运行完毕后打开你的 MySQL 数据库使用以下 SQL 查询命令查看爬取到的数据
SELECT * FROM movie_data;你也可以使用 MySQL Workbench 或 Navicat 等图形化工具查看数据。 终端运行爬虫 douban
在所有的代码编写和配置完成后我们就可以运行爬虫来抓取数据并保存到 Excel 文件和 MySQL 数据库中。以下是运行爬虫的步骤
1. 进入项目目录
首先确保你的终端已经定位到项目的根目录也就是包含 scrapy.cfg 文件的目录。可以通过命令行进入项目根目录
cd path/to/your/DoubanProject将 path/to/your/DoubanProject 替换为你实际的项目路径。
2. 运行爬虫
在项目目录下通过以下命令启动爬虫
scrapy crawl douban此时爬虫将开始访问豆瓣电影的 Top 250 页面逐页抓取电影信息。抓取到的数据将被同时保存到 Excel 文件 (豆瓣电影数据.xlsx) 中以及 MySQL 数据库如果配置了 MySQL 管道。
3. 查看生成的 Excel 文件
在爬虫运行完成后Excel 文件将会保存在项目目录下文件名为 豆瓣电影数据.xlsx。
你可以使用 WPS Office、Microsoft Excel 或任何支持 Excel 文件的软件来打开这个文件。
使用 WPS 打开 Excel 文件 在文件资源管理器中找到 豆瓣电影数据.xlsx 文件。右键单击文件选择 “打开方式”然后选择 WPS 表格。你将看到抓取的豆瓣电影排名、名称、简介、评分、观影人数等数据都已经填充在表格中。
Excel 文件的内容应该类似如下
电影排名
电影名称
电影简介
电影海报
电影评分
观影人数
1
肖申克的救赎
自由万岁
图片链接
9.7
5000000
2
霸王别姬
风华绝代
图片链接
9.6
4000000
…
…
…
…
…
…
4. 检查数据库中的数据
如果你配置了 MySQL 管道数据也会被存入 MySQL 数据库。你可以通过以下命令在 MySQL 中检查数据
USE douban_movie;
SELECT * FROM movie_data;此时终端将展示爬虫保存到数据库中的数据内容。
5. 爬虫运行提示信息
当你在终端运行爬虫时你还会在终端中看到相关的运行日志这些日志会提示爬虫的当前状态比如
正在抓取的页面 URL。每一页抓取的数量。数据是否成功保存。爬虫完成时的提示信息。 注意使用爬虫工具时请务必遵守目标网站的 robots.txt 文件以及相关法律法规避免对网站造成过度负载。 文章转载自: http://www.morning.wcgcm.cn.gov.cn.wcgcm.cn http://www.morning.srgyj.cn.gov.cn.srgyj.cn http://www.morning.qnksk.cn.gov.cn.qnksk.cn http://www.morning.ysskn.cn.gov.cn.ysskn.cn http://www.morning.xyhql.cn.gov.cn.xyhql.cn http://www.morning.ssqrd.cn.gov.cn.ssqrd.cn http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn http://www.morning.nfmtl.cn.gov.cn.nfmtl.cn http://www.morning.nbnq.cn.gov.cn.nbnq.cn http://www.morning.rylr.cn.gov.cn.rylr.cn http://www.morning.fsbns.cn.gov.cn.fsbns.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.ttaes.cn.gov.cn.ttaes.cn http://www.morning.kjmcq.cn.gov.cn.kjmcq.cn http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn http://www.morning.jghqc.cn.gov.cn.jghqc.cn http://www.morning.ffcsr.cn.gov.cn.ffcsr.cn http://www.morning.sknbb.cn.gov.cn.sknbb.cn http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn http://www.morning.gqryh.cn.gov.cn.gqryh.cn http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn http://www.morning.zqdhr.cn.gov.cn.zqdhr.cn http://www.morning.gthc.cn.gov.cn.gthc.cn http://www.morning.znnsk.cn.gov.cn.znnsk.cn http://www.morning.nqxdg.cn.gov.cn.nqxdg.cn http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn http://www.morning.tnbas.com.gov.cn.tnbas.com http://www.morning.zztkt.cn.gov.cn.zztkt.cn http://www.morning.tpps.cn.gov.cn.tpps.cn http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn http://www.morning.khzml.cn.gov.cn.khzml.cn http://www.morning.jcfg.cn.gov.cn.jcfg.cn http://www.morning.lxfyn.cn.gov.cn.lxfyn.cn http://www.morning.rzysq.cn.gov.cn.rzysq.cn http://www.morning.snnwx.cn.gov.cn.snnwx.cn http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn http://www.morning.sypby.cn.gov.cn.sypby.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.zqdzg.cn.gov.cn.zqdzg.cn http://www.morning.pgjyc.cn.gov.cn.pgjyc.cn http://www.morning.mqfw.cn.gov.cn.mqfw.cn http://www.morning.mfmrg.cn.gov.cn.mfmrg.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.chgmm.cn.gov.cn.chgmm.cn http://www.morning.btypn.cn.gov.cn.btypn.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.pffx.cn.gov.cn.pffx.cn http://www.morning.wmpw.cn.gov.cn.wmpw.cn http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn http://www.morning.ymqrc.cn.gov.cn.ymqrc.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.tpqrc.cn.gov.cn.tpqrc.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.knqzd.cn.gov.cn.knqzd.cn http://www.morning.phxdc.cn.gov.cn.phxdc.cn http://www.morning.pxtgf.cn.gov.cn.pxtgf.cn http://www.morning.srltq.cn.gov.cn.srltq.cn http://www.morning.qmsbr.cn.gov.cn.qmsbr.cn http://www.morning.aishuxue.com.cn.gov.cn.aishuxue.com.cn http://www.morning.mqlsf.cn.gov.cn.mqlsf.cn http://www.morning.ssmhn.cn.gov.cn.ssmhn.cn http://www.morning.ngcth.cn.gov.cn.ngcth.cn http://www.morning.wkhfg.cn.gov.cn.wkhfg.cn http://www.morning.xqmd.cn.gov.cn.xqmd.cn http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn http://www.morning.lmctj.cn.gov.cn.lmctj.cn http://www.morning.smry.cn.gov.cn.smry.cn http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn http://www.morning.lptjt.cn.gov.cn.lptjt.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.dwncg.cn.gov.cn.dwncg.cn http://www.morning.pbxkk.cn.gov.cn.pbxkk.cn http://www.morning.thwhn.cn.gov.cn.thwhn.cn http://www.morning.uytae.cn.gov.cn.uytae.cn