AI&BigData four:使用scrapy爬取网站,按照指定的格式存入txt文本的详细过程复盘

本文详细记录了使用Scrapy爬取动态网站的过程,包括项目创建、设置、爬虫编写、数据解析及存储。通过实践,学会了如何处理动态加载的网页,将数据按照指定格式保存到TXT文件中。文章还涵盖了Scrapy的常用组件和技巧,如XPath和CSS选择器的使用,以及动态加载网页的模拟。
摘要由CSDN通过智能技术生成

用了将近两个星期,终于对scrapy有了初步了解,并且使用scrapy来爬取到了动态加载的网页。再此给自己这两周的学习成果做一个详细的过程复盘,顺带重温下忘掉的知识。

首先看看项目要求。


要爬取的是左边的四个大板块里的四个小版块的文章,然后按照以下的格式保存在文档中。

最终爬取的结果是这样的:






接下来让我们看看具体过程是怎样的?

1.打开命令行,跳转到指定文件存放的目录下,新建一个scrapy项目。如下所示

cd C:\Users\ME\Desktop\Python project\pachong\scrapy

scrapy startproject test(项目名称)



我们可以看到有两个提示:

You can start your first spider with:
    cd test1

    scrapy genspider example example.com

第一个就是直接跳转到项目根目录下。

第二个就是新建爬虫文件,新建爬虫文件我们可以在spiders目录下创建,建议使用scrapy genspider example example.com

example指的是爬虫文件,example.com指的是要爬取的网址首页,也就是最开始的首页。

我们先跳转到根目录下 cd test1之后,输入: scrapy genspider finance business.sohu.com

在pycharm中就会自动生成文件,并且在爬虫文件finance.py中自动生成一些代码,不然的话还要自己手打,忒麻烦。




scrapy.cfg: 项目的配置文件
test1/: 该项目的python模块。之后您将在此加入代码。
test1/items.py: 项目中的item文件.
test1/pipelines.py: 项目中的pipelines文件.
test1/settings.py: 项目的设置文件
test1/spiders/: 放置spider代码的目录.


Scrapy默认是不能在IDE中调试的,所以呢我们要新建一个文件放到根目录下,这个名字你喜欢怎么取都行,这里举一个例子。

在根目录中新建一个py文件叫:main.py;在里面写入以下任意一个内容,但是要注意文件名是你的爬虫名字这个很关键。这里的爬虫名字就是finance


from scrapy import cmdline
name ='finance'
cmd = 'scrapy crawl {0}{1}'.format(name,'')
cmdline.execute(cmd.split())
from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'finance'])
# from scrapy.cmdline import execute
# import os
# import sys
# #因为每次要输入副目录很麻烦,通过调用这两个模块,能够快速找到main文件的副目录
# sys.path.append(os.path.dirname(os.path.abspath(__file__)))
# #print os.path.dirname(os.path.abspath(__file__))
# #添加完命令之后,我们在项目下的Spyder的爬虫文件就可以设置断点进行调试了
# execute(['scrapy','crawl','finance'])


首先了解下scrapy爬虫是怎么工作的,我们在官方文档中看到这幅图:






我们再回过头来看看创建的爬虫文件



在开始编辑爬虫文件之前,我们做一些基本的准备工作。

1.在settings.py中取消最下面几行的注释:作用在于Scrapy会缓存你有的Requests!当你再次请求时,如果存在缓存文档则返回缓存文档,而不是去网站请求,这样既加快了本地调试速度,也减轻了 网站的压力。一举多得




2.在items.py 文件中根据需求定义一些字段

比如说大板块的名字,url,小版块的名字,url,新闻作者,发布时间,抓取时间,标题,正文等等。

这样爬虫爬取的文件就会对应保存在相关的字段中了。




好了,是不是已经等不及了,我们现在就开始编写我们的爬虫文件

首先先把一些需要使用的包给导入进去,这样方便之后的编写。具体哪些包有什么用,自行百度就好。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值