对选股宝实时信息进行爬虫
注意:
使用前请安装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 scrapyclass 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文件和里面内容:
对选股宝实时信息进行爬虫相关推荐
- Python爬虫学习笔记(实例:淘宝商品信息定向爬虫)
淘宝商品信息定向爬虫先贴代码,后看解析: #淘宝商品信息定向爬虫 import requests import re#获得页面 def getHTMLText(url):try:#headers = ...
- 中国大学MOOC“淘宝商品信息定向爬虫”实例(2022版)
目标: 获取淘宝搜索页面的信息 提取其中的商品名称和价格 (一)程序的结构设计: 1:提交商品搜索请求,循环获取页面 2:对于每个页面,提取商品名称和价格信息 3:将信息输出到屏幕上 (二)代码实现: ...
- python 涨停统计_Python采集选股宝涨停信息
本片文章--by 包希仁 1 介绍一下如何用python采集选股宝的涨停信息--主要是涨停原因数据,以便在本地进行后续统计分析. 用到的开发工具 python3.6.pycharm.chrome 2 ...
- 淘宝商品信息定向爬虫
只用来学习请勿无限制使用爬虫 功能描述 目标:获取淘宝搜索页面的信息媒体去其中的商品名称和价格 程序的结构设计 步骤1:提交商品搜索请求,循环获取页面 步骤2:对每个页面,提取商品名称和价格信息 步骤 ...
- python3 简单爬虫实战|使用selenium来模拟浏览器抓取选股宝网站信息里面的股票
对爬虫的简单介绍 1. 什么是爬虫? 请求页面并提取数据的自动化过程. 2. 爬虫的基本流程 (1) 发起请求:通过url向服务器发起request请求,请求可以包含额外的header信息 ...
- 爬虫9-淘宝商品信息定向爬虫
功能描述: 目标 获取淘宝搜索页面的信息,提取其中的商品信息名称和价格 理解 淘宝的搜索接口 翻页的处理 技术路线 requests re 当我们在淘宝上搜索书包时: 观察淘宝页面可知每一页共44个商 ...
- 淘宝商品信息定向爬虫实例
1.说明 获得淘宝的搜索接口 淘宝搜索页面不允许爬虫爬取 不要不加限制的爬取次网站 2.代码 import re import requestsdef getHTMLText(url):try:hea ...
- python爬淘宝的退货信息_Python——淘宝商品信息定向爬虫(requests+re)
有点崩,现在好像爬取不到任何东西了 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 理解: 1.怎样去通过程序向淘宝提交请求,并获得提取的结果 2.怎样展示翻页的处理 首先我们要查看淘宝网的r ...
- Python爬虫 淘宝商品信息定向爬虫
代码: import requests import redef getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_s ...
最新文章
- 神经网络侧枝抑制(自编码)
- 四大传值详解:属性传值,单例传值,代理传值,block传值
- boost::format模块演示添加到 printf 语法的功能
- ArcGIS怎样获取重分类后各类所占的像元个数
- Android之版本检测和更新
- Ext学习笔记02 - 构造方法,类继承,类实例方法重写
- 电商后台管理系统——权限管理模块
- 中国企业管理水平啥时候才能成熟啊
- VOC数据集简介与制作
- matlab liccode,有没有哪位大佬能帮忙解决以下两个错误:liccode=cha
- 从阿里双十一看云计算
- 阿里云服务器(Centos7)安装谷歌浏览器
- API的理解和使用——全局命令
- IterNet: Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks
- 如何快速配置OA、CRM、ERP等管理软件
- 城堡幻想曲圣魔大战3(Castle Fantisia)新艾伦希亚战记(即重做版) 新增剧情简介
- vivo2021笔试愚人节礼品盒问题
- java swing桌面_Java图形界面swing面板
- 01、【电脑维修】常用的快捷键及指令工具(持续更新)
- ChatGPT,又爆了...