python scrapy爬取网站数据(二)

news/2025/3/14 16:41:30/

用法很简单,先安装Scrapy,我这里是win10环境,py3.10+

安装scrapy

pip install Scrapy

在这里插入图片描述
显示如图安装完毕

创建项目

在这里插入图片描述

分三步创建

scrapy stratproject spiderdemo #创建spiderdemo 项目,项目名随意取
cd spiderdemo #进入项目目录下
scrapy genspider nmdis www.nmdis.org.cn #爬虫名为nmdis ,后面接url

在这里插入图片描述
项目创建完配置venv虚拟环境,目的是为了每个项目用自己的包,当然也可以不配置用全局环境,至此环境搭建完成。

例子:爬取网页 https://www.nmdis.org.cn/hyxw/gnhyxw/ 新闻模块

nmdis.py文件

import scrapy
from scrapy import Selector, Request
from scrapy.http import HtmlResponsefrom spiderdemo.items import DetailItemclass NmdisSpider(scrapy.Spider):name = "nmdis"allowed_domains = ["nmdis.org.cn"]def start_requests(self):for page in range(1):print(f"爬取页数:{page + 1}")if page < 1:yield Request(url=f'https://www.nmdis.org.cn/hyxw/gnhyxw/')else:yield Request(url=f'https://www.nmdis.org.cn/hyxw/gnhyxw/index_{page + 1}.shtml')# 获取详情页的urldef parse(self, response: HtmlResponse):sel = Selector(response)url_items = sel.css("div.title.fl.ellipsis > a::attr(href)")for url in url_items:detail_item = DetailItem()detail_item['details_url'] = response.urljoin(url.extract())details_url = response.urljoin(url.extract())# 回调yield Request(url=details_url, callback=self.parse_detail, cb_kwargs={'item': detail_item})# 获取详情页数据def parse_detail(self, response, **kwargs):detail_item = kwargs['item']sel = Selector(response)detail_item['title'] = sel.xpath('//h2[@class="maintit"]/text()').extract_first()detail_item['source'] = sel.xpath('//em[@class="fl"]/text()').extract_first()detail_item['release_time'] = sel.xpath('//em[@class="fr"]/text()').extract_first()detail_arr = sel.xpath('//div[@class="bodytext"]//text()').extract()detail_item['context'] = "".join(detail_arr)yield detail_item

items.py文件

import scrapyclass DetailItem(scrapy.Item):details_url = scrapy.Field()title = scrapy.Field()source = scrapy.Field()release_time = scrapy.Field()context = scrapy.Field()

配置settings.py代理 f12 在请求里面找一个就行
在这里插入图片描述
在这里插入图片描述
scrapy crawl nmdis运行即可

导入到excel

导入openpyxl包
pip install openpyxl

pipelines.py 编写管道输出

class SpiderdemoPipeline:def __init__(self):self.wb = openpyxl.Workbook()self.ws = self.wb.activeself.ws.title = '标题测试'self.ws.append(('来源地址', '标题', '信息来源', '发布时间', '内容'))def close_spider(self, spider):self.wb.save('爬取数据.xlsx')def process_item(self, item, spider):details_url = item.get('details_url') or ''title = item.get('title') or ''source = item.get('source') or ''release_time = item.get('release_time') or ''context = item.get('context') or ''self.ws.append((details_url, title, source, release_time, context))return item

settings.py打开管道配置
在这里插入图片描述
scrapy crawl nmdis运行即可

实用命令

可以在自己的项目中生成包文件

pip freeze > requirements.txt #生成pip文件

若存在requirements文件可以导入其他项目中的包依赖

pip install -r requirements.txt #安装文件的依赖项

http://www.ppmy.cn/news/776895.html

相关文章

WIN10 快捷键 个人常用

win i 打开设置 win q/s 打开搜索 win m 全部最小化 win shift m 撤销全部最小化 win w 打开ink工作区 win 数字键 打开固定在任务栏的软件 win tab 任务视图 win shift s 截图&#xff0c; 选项分别是矩形截图、任意形状截图、窗口截图和全屏截图alt f 打…

win10系统怎么锁定计算机,win10系统设置锁定计算机快捷键的还原办法

有关win10系统设置锁定计算机快捷键的操作方法想必大家有所耳闻。但是能够对win10系统设置锁定计算机快捷键进行实际操作的人却不多。其实解决win10系统设置锁定计算机快捷键的问题也不是难事&#xff0c;小编这里提示两点&#xff1a;1、打开控制面板&#xff0c;方法是点击屏…

win10切换输入法快捷键_Windows快捷键大全

认识按键 标准计算机键盘共104键,除了26个字母键、符号键、数字键外,其余按键功能如下:Windows快捷键大全主键盘区:Esc 键:escape,退出键。Tab 键:tabulator key,跳格键,在文本编辑软件中增加四个空格,Windows中可用于切换屏幕上的焦点。Ctrl 键:control,控制键。S…

Win10使用汇总

目录&#xff1a; 一、截图功能 1、快捷键WinShiftS 2、使用键盘快捷键截图 3、Microsoft Edge浏览器截图 二、输入法 1、微软五笔与拼音混合 2、默认英文设置 三、彻底关闭Win10更新 四、恢复Mircrosoft Edge自带的翻译功能 五、Microsoft Edge浏览器总是打开“联想…

台式计算机睡眠快捷键,四步教你快速创建电脑休眠快捷键

win7系统怎么快速进入休眠模式&#xff0c;离开电脑一段时间后会自动进入休眠模式&#xff0c;而且在Win7开始菜单中&#xff0c;关机、睡眠、休眠都能很容易的找到。但是对于经常使用休眠模式的用户来讲&#xff0c;每次操作都要进入开始菜单有点麻烦。我们可以能否在桌面创建…

win7计算机睡眠快捷键,Windows7下睡眠按钮快捷方式如何设置以便快速睡眠

每个Win7系统用户都知道电脑配置里面有一个睡眠功能&#xff0c;有的时候电脑会处于长时间不用的状态&#xff0c;这时候一般就可以采用电脑睡眠模式&#xff0c;一来这可以保护电脑的数据安全&#xff0c;二来也可以起到省电的作用。但是可能还好多人都不知道怎么设置睡眠模式…

pycharm,IDLE,Win10快捷键

快捷键 IDLE的快捷键 CtrlN:在IDLE交互界面下&#xff0c;用来启动IDLE编辑器 CtrlQ:退出IDLE Shell 或 IDLE编辑器 Alt3:在IDLE编辑器内&#xff0c;注释选定区域文本 Alt4:在IDLE编辑器内&#xff0c;解除注释选定区域文本 AltQ:在IDLE编辑器内&#xff0c;将python代码进行…

win7锁定计算机快捷键6,win7锁定计算机快捷键_win10 锁定计算机

2017-01-05 15:11:14 当有事需暂时离开&#xff0c;又不想他人动用电脑时&#xff0c;可采取锁定桌面的办法。1 、首先要在电脑中设置好一个用户帐户密码(开机密码)。在锁定桌面时&#xff0c;只需按Win十L键(即按住那个有微软视窗图标的键... 2016-12-18 14:43:08 1在电脑上键…