scrapy是一款强大的python爬虫框架,可以帮助我们快速、灵活地获取互联网上的数据。在实际爬取过程中,我们会经常遇到html、xml、json等各种数据格式。在这篇文章中,我们将介绍如何使用scrapy分别爬取这三种数据格式的方法。
一、爬取HTML数据
首先,我们需要创建一个Scrapy项目。打开命令行,输入以下命令:
scrapy startproject myproject
这个命令将会在当前文件夹下创建一个叫做myproject的Scrapy项目。
接下来,我们需要设置起始的URL。在myproject/spiders目录下,创建一个名为spider.py的文件,编辑文件,输入以下代码:
立即学习“前端免费学习笔记(深入)”;
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
pass代码首先导入了Scrapy库,然后定义了一个爬虫类MySpider,设置了一个名为myspider的spider名称,并设置了一个起始URL为http://example.com。最后定义了一个parse方法。parse方法默认会被Scrapy调用,用来处理响应数据。
接下来,我们需要解析响应数据。继续编辑myproject/spiders/spider.py文件,加入以下代码:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
title = response.xpath('//title/text()').get()
yield {'title': title}代码中,我们使用response.xpath()方法来获取HTML页面中的标题。使用yield来返回字典类型数据,包含了我们获取到的标题。
最后,我们需要运行Scrapy爬虫。在命令行中输入以下命令:
scrapy crawl myspider -o output.json
这个命令会将数据输出到output.json文件中。
二、爬取XML数据
同样地,我们首先需要创建一个Scrapy项目。打开命令行,输入以下命令:
scrapy startproject myproject
这个命令将会在当前文件夹下创建一个叫做myproject的Scrapy项目。
在myproject/spiders目录下,创建一个名为spider.py的文件,编辑文件,输入以下代码:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com/xml']
def parse(self, response):
pass代码中,我们设置了一个名为myspider的spider名称,并设置了一个起始URL为http://example.com/xml。
继续编辑myproject/spiders/spider.py文件,加入以下代码:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com/xml']
def parse(self, response):
for item in response.xpath('//item'):
yield {
'title': item.xpath('title/text()').get(),
'link': item.xpath('link/text()').get(),
'desc': item.xpath('desc/text()').get(),
}代码中,我们使用response.xpath()方法来获取XML页面中的数据。使用for循环遍历item标签,获取title、link、desc三个标签内的文本数据,使用yield来返回字典类型的数据。
最后,我们同样需要运行Scrapy爬虫。在命令行中输入以下命令:
scrapy crawl myspider -o output.json
这个命令会将数据输出到output.json文件中。
三、爬取JSON数据
同样地,我们需要创建一个Scrapy项目。打开命令行,输入以下命令:
scrapy startproject myproject
这个命令将会在当前文件夹下创建一个叫做myproject的Scrapy项目。
在myproject/spiders目录下,创建一个名为spider.py的文件,编辑文件,输入以下代码:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com/json']
def parse(self, response):
pass代码中,我们设置了一个名为myspider的spider名称,并设置了一个起始URL为http://example.com/json。
继续编辑myproject/spiders/spider.py文件,加入以下代码:
import scrapy
import json
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com/json']
def parse(self, response):
data = json.loads(response.body)
for item in data['items']:
yield {
'title': item['title'],
'link': item['link'],
'desc': item['desc'],
}代码中,我们使用json.loads()方法来解析JSON格式的数据。使用for循环遍历items数组,获取每个item的title、link、desc三个属性,使用yield来返回字典类型的数据。
最后,同样需要运行Scrapy爬虫。在命令行中输入以下命令:
scrapy crawl myspider -o output.json
这个命令会将数据输出到output.json文件中。
四、总结
在本文中,我们介绍了如何使用Scrapy分别爬取HTML、XML、JSON数据。通过以上例子,你可以了解到Scrapy的基本用法,也可以根据需要深入学习更多高级用法,希望能给你在爬虫技术方面提供帮助。
以上就是深度使用Scrapy:如何爬取HTML、XML、JSON数据?的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号