news 2026/6/24 7:37:51

【scrapy框架】爬取内容后写入数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【scrapy框架】爬取内容后写入数据库

0 基本逻辑

1创建项目 scrapy startproject 项目名字2cd 到spiders文件夹下3创建爬虫文件 scrapy genspider-t crawl 爬虫文件名字 爬取的域名

1 settings.py文件中设置日志文件

# 一般不采取这种方式# LOG_LEVEL = 'WARNING'# 推荐使用日志文件的方式LOG_FILE='log.log'

2 使用scrapy爬取读书网的中书的名字和图片地址

2.1 新建项目

scrapy startproject 项目名字

2.2 新建爬虫名字

scrapy genspidef 爬虫名字 域名# 域名,如www.baidu.com

2.3 在爬虫文件中写爬取逻辑

importscrapyfromscrapy.linkextractorsimportLinkExtractorfromscrapy.spidersimportCrawlSpider,Rulefromread_book.itemsimportReadBookItemclassReadbookSpider(CrawlSpider):name="read_book"allowed_domains=["www.dushu.com"]start_urls=["https://www.dushu.com/book/1188_1.html"]rules=(Rule(LinkExtractor(allow=r"/book/1188_\d+\.html"),callback="parse_item",follow=True),)defparse_item(self,response):img_list=response.xpath('//div[@class="bookslist"]//img')forimginimg_list:name=img.xpath('./@data-original').extract_first()src=img.xpath('./@alt').extract_first()book=ReadBook101Item(name=name,src=src)yieldbook

2.4 items.py文件中

importscrapyclassReadBookItem(scrapy.Item):name=scrapy.Field()src=scrapy.Field()

2.5 pipelines.py文件中

fromitemadapterimportItemAdapterfromscrapy.utils.projectimportget_project_settings# 加载settings文件importpymysqlclassReadBook101Pipeline:defopen_spider(self,spider):self.fp=open('book.json','w',encoding='utf-8')defprocess_item(self,item,spider):self.fp.write(str(item))returnitemdefclose_spider(self,spider):self.fp.close()classMysqlPipeline:defopen_spider(self,spider):settings=get_project_settings()self.host=settings['DB_HOST']self.user=settings['DB_USER']self.password=settings['DB_PASSWORD']self.name=settings['DB_NAME']self.port=settings['DB_PORT']self.charset=settings['DB_CHARSET']self.connect()defconnect(self,):self.conn=pymysql.connect(user=self.user,password=self.password,host=self.host,database=self.name,port=self.port,charset=self.charset,)self.cursor=self.conn.cursor()defprocess_item(self,item,spider):sql='insert into book(name,src) values("{}","{}")'.format(item['name'],item['src'])self.cursor.execute(sql)self.conn.commit()returnitemdefclose_spider(self,spider):self.cursor.close()self.conn.close()

2.6 settings文件中开启管道、配置数据库

DB_HOST='127.0.0.1'DB_PORT=3306DB_USER='root'DB_PASSWORD='root'DB_NAME='spider01'# utf-8不允许使用 - 否则会报错NoneType……DB_CHARSET='utf8'# Configure item pipelines# See https://docs.scrapy.org/en/latest/topics/item-pipeline.htmlITEM_PIPELINES={"read_book_101.pipelines.ReadBook101Pipeline":300,'read_book_101.pipelines.MysqlPipeline':301}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 20:54:38

个人投资者的落地路径:从“说人话,做量化”到实盘前的三道关

【摘要】阐述个人投资者借助AI工具,将自然语言投资思路转化为系统化交易的路径。文章聚焦于策略回测、风控执行与实战演练三大核心关卡,为技术背景的投资者提供一份严谨的操作手册。引言量化投资,这一曾被视为机构专属领域的复杂工程&#xf…

作者头像 李华
网站建设 2026/6/23 20:47:00

大模型多智能体框架之争:AutoGen、CrewAI、LangGraph选型策略

文章深入对比三大多智能体框架:Autogen(对话驱动,擅长人机协作)、CrewAI(模块化流水线架构)和LangGraph(状态机驱动的流程编排)。通过分析三者在开发效率、灵活性和控制粒度上的差异…

作者头像 李华
网站建设 2026/6/22 14:53:32

大规模语言模型的抽象思维与创新能力培养

大规模语言模型的抽象思维与创新能力培养关键词:大规模语言模型、抽象思维、创新能力、培养方法、应用场景摘要:本文围绕大规模语言模型的抽象思维与创新能力培养展开深入探讨。首先介绍了研究的背景、目的、预期读者和文档结构等内容。接着阐述了核心概…

作者头像 李华
网站建设 2026/6/23 21:08:50

【深度学习新浪潮】对称性:从数学本质到大模型训练与推理的效率革命

在大模型研究的浪潮中,我们往往聚焦于模型架构的创新(如Transformer的迭代)、训练数据的规模扩张或算力的堆叠,却容易忽略一个贯穿数学、物理与人工智能的核心概念——对称性。从几何空间的图形变换到代数方程的不变性,从自然规律的守恒律到机器学习模型的泛化能力,对称性…

作者头像 李华
网站建设 2026/6/22 17:04:13

老牌软件,输入序列号可激活商业版!

引言 前两天用无损放大的软件把gif图片无损放大以后打开,发现用系统自带的图片查看时报错,但用其他的软件能打开。 这系统自带的图片查看器功能实在是太弱了,我强烈建议使用其他的图片查看器打开图片,比如今天的这款软件。 02 …

作者头像 李华