1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据

python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据

时间:2021-04-27 19:14:51

相关推荐

python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据

scrapy中文官方文档:点击打开链接

Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试,Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

1.创建项目

在开始爬取之前,您必须创建一个新的Scrapy项目。 进入您打算存储代码的目录中,运行下列命令:scrapy startproject day1

2.定义item

Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误import scrapy

class Day1Item(scrapy.Item):

city = scrapy.Field()

temperature = scrapy.Field()

date = scrapy.Field()

pass

3.编写爬虫

Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。

在spiders中创建一个名为sinaweather.py文件import scrapy

from day1.items import Day1Item # day1是文件夹的名,Day1Item是items.py中的类class名

class weatherSpider(scrapy.spiders.Spider): #weatherSpider是自定义的名

name = "sina" #sina是自定义的名

allowed_domains = [''] #是限定在这个网站的范围之内爬虫

start_urls = ['/xian'] #开始爬虫的网址

def parse(self, response):

item= Day1Item()

item['city'] = response.xpath('//*[@class="slider_ct_name"]/text()').extract()

item['temperature']=response.xpath('//*[@class="wt_fc_c0_i_temp"]/text()').extract()

item['date']=response.xpath('//*[@class="wt_fc_c0_i_date"]/text()').extract()

return item

4.修改配置文件(settings)BOT_NAME = 'day1'

SPIDER_MODULES = ['day1.spiders']

NEWSPIDER_MODULE = 'day1.spiders'

FEED_EXPORT_ENCODING = 'utf-8'

5.执行爬虫命令

在命令行输入如下命令:scrapy crawl sina -o test.json

我们看到命令行出现如下内容,说明爬虫成功了

然后我们回到根目录下,看我们刚保存的test.json文件,我们看到如下json内容,说明需要爬到的数据被保存到test.json文件中

至此第一个scrapy爬虫示例基本实现,后续会更深入的学习如何利用scrapy抓取数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。