注意:

使用前请安装cmd、pycharm、anaconda

Anaconda安装教程https://blog.csdn.net/u012318074/article/details/77075209


一、创建一个scrapy项目

在开始爬取之前,我们首先要创建一个scrapy项目,在命令行输入一下命令即可创建

        scrapy startproject mingyan

如果你输入命令之后,出现了下面的显示:

对选股宝实时信息进行爬虫
说明已经创建成功,我们来看一下目录结构:

对选股宝实时信息进行爬虫


二、创建一个scrapy蜘蛛文件


上面我们已经成功创建了一个scrapy 项目,那我们该在哪里写我们的蜘蛛呢?

在spiders目录下面,这一个scrapy 文档,我们就来创造一只scrapy蜘蛛


对选股宝实时信息进行爬虫


创建的肯定是我们的.py文件。怎么创建呢?你可以用记事本,也可以用pycharm,建议使用pycharm因为方便!首先你需要把你创建的项目mingyan2在pycharm里面打开,然后右键点击spiders,选中New再选中python File即可,如下图:

对选股宝实时信息进行爬虫


文件名的话你随意,尽量见名知意,这里我就取名为:mingyan_spider.py  (保存在mingyan2/spiders目录下),再看一下创建好文件后的目录结构:

对选股宝实时信息进行爬虫


到这里的话我们已经成功创建了一个scrapy蜘蛛文件,我们要爬取哪个网站、爬取这个网站的数据,统统在这个文件里面编写

三、编写第一个蜘蛛
那我们怎么提取我们想要的数据呢?比如我想要一个文章的标题、内容、图片,这些的话就可以我们自己定义方法提取了,后面我们慢慢涉及!这里先简单的来!

好了,我们先来看看蜘蛛项目:(*解析与提示已经在里面

1.scrapy css模块

用Scrapy框架写爬虫,简单来说爬虫就是从网上抓取网页,解析网页,然后进行数据的存储与分析,将从网页的解析到数据的转换存储。

CSS选择器

CSS规则由两个主要的部分构成:选择器,以及一条或多条声明

Selector {declaration1; declearation2;…declearationN }

CSS常用的选择器

.class

.intro

选择class='intro'的所有元素

#id

#firstname

选择id='firstname'的所有元素

*

*

选择所有元素

Element

P

选择所有<p>元素

Element,element

Div,p

选择所有<div>元素和所有<p>元素

Element,element

Div p

选择<div>元素内部的所有p元素

[attribute]

[target]

选择带有target属性的所有元素

[attribute=value]

[target=_blank]

选择target="_blank"的所以元素

与Xpath相比较,CSS相对而言更加复杂

print Selector(text=body).css('class').extract()

print(u'class 下的所有name节点')

print Selector(text=body).css('class name').extract() # class 下的所有name节点

 

print Selector(text=body).css('class name').extract()[0]

print(u'选择带有lang属性的所有元素')

print Selector(text=body).css('[lang]').extract() 选择带有lang属性的所有元素

2.网站内容分析

对选股宝实时信息进行爬虫


对选股宝实时信息进行爬虫

2.写代码


import scrapy

class itemSpider(scrapy.Spider):
    name = 'itemSpider'
    start_urls = ['https://xuangubao.cn/']

    def parse(self, response):
        data = response.css('div.news-item-main')  # 得到一个选择列表
        for v in data:
            text = v.css('span.bullish-and-bear.bullish::text').extract()  # 提取数据
            title = v.css('.news-item-title::text').extract()  # 提取题目
            texta = v.css('.news-item-detail-summary normal-pre-text::text').extract()#新闻内容
            textb = v.css('.stock-group-item-name::text').extract()#股票名字
            if text is not None:
                tag = v.css('.news-item-intro-topic::text').extract()#标签
                str = ' '.join(tag)#标签
                text2 = ' '.join(texta)#新闻内容
                text3 = ' '.join(textb)#股票名字
                text4 = ' '.join(text)# 提取数据
                title1 = ' '.join(title)# 提取题目
                fileName = '%s.txt' %text  # 爬取的内容存入文件,文件名为:数据名字.txt
                f = open(fileName, "a+")  # 追加写入文件
                f.write(title1)  # 写入题目
                f.write('\n')
                f.write(text4)  # 写入数据
                f.write('\n')
                f.write(text2)  #新闻内容
                f.write('\n')
                f.write(text3)  # 写入股票名字
                f.write('\n')
                f.write(str)
                f.write( '\n----------------------------------------------------------------------------------------------------------------------\n')
                f.close()  # 关闭文件操作

四、运行蜘蛛

        输入以上命令便可以运行蜘蛛了!这里要重点提醒一下,我们一定要进入:itemSpider 这个目录,也就是我们创建的蜘蛛项目目录,以上命令才有效!还有  crawl  后面跟的是你类里面定义的蜘蛛名,也就是:name,并不是项目名、也不是类名,这些细节希注意!

       scrapy craw itemSpider 

命令行输出了什么?

通过上面命令,命令行输出与了一下信息:

对选股宝实时信息进行爬虫


五、运行结果

        可以看到以下txt文件和里面内容:

对选股宝实时信息进行爬虫






相关文章:

  • 2021-11-11
  • 2022-01-17
  • 2021-11-19
  • 2021-04-20
  • 2022-02-06
  • 2021-07-29
  • 2022-12-23
猜你喜欢
  • 2021-05-19
  • 2022-12-23
  • 2021-07-16
  • 2021-11-19
  • 2021-12-19
  • 2021-04-07
  • 2021-11-19
相关资源
相似解决方案