初窥Scrapy,Scrapy今天算是正式入门了

版权声明:多多交流。 https://blog.csdn.net/qq_42776455/article/details/82845475

初窥Scrapy

当你学完爬虫基础,用requests,beautifulsoup,xpath,re……甚至selenium爬了一些网站但是感觉在爬虫未来就业很迷茫的时候,你是时候研究下Scrapy。我先说下心情,今天刚刚入门scrapy(我说的入门是可以用scrapy框架爬一个简单的网站),中间件的一些东西还不懂。感觉像是打开了新世界的大门。
大家可能开始想要了解过Scrapy的时候,都看过下面这张图,但肯定都是云里雾里的一脸懵b。最后找到一个免费的课程,虽然刚开始还是有点枯燥不知所云,你只要坚持看两集下去,马上就能明白这个框架的运行过程,我不是打广告的,自己看过很有用分享给大家。只适合入门Scrapy的人群。
慕课网:https://www.imooc.com/learn/1017
对应实例代码:https://download.csdn.net/download/qq_42776455/10687836
(代码是我自己写的,有些地方和视频有出入,大家一看就清楚。)
框架介绍:https://segmentfault.com/a/1190000013178839
在这里插入图片描述
windows下安装Scrapy:https://www.cnblogs.com/kongzhagen/p/6549053.html
项目运行命令:https://blog.csdn.net/oscer2016/article/details/78007472

Scrapy官网:https://scrapy.org/
Scrapy1.5英文文档:https://docs.scrapy.org/en/latest/
Scrapy1.5中文文档:http://www.scrapyd.cn/doc/
中文文档的作者,是一个很良心的同学,推荐去他的Scrapy论坛多交流交流。

入门过程中遇到的难点

scrapy.Request(url)不执行,或者没反应

首先检查下allowed_domains列表里的值,这里面的值一般不需要http://或者https://前缀,只是限制了start_urls里的url,确保在这个域内。

extract()和extract_first()

parse()里的参数response,可以直接用xpath来解析。解析后的数据还是一个selector对象。如果这个对象里的也就是html标签的text(),(如 <h1> text </h1>)是多行的话,extract()就将text的所有内容转换为字符串,包括不可见字符‘\n,\t…’。extract_first()只是转换text的第一行。

parse()里用yield将当前值给piplines,然后继续执行

将数据yeild到piplines中,然后继续运行爬取其他页面。return返回数据结束当前程序。注意这两个的差别。

运行scrapy爬虫

在命令行里scrapy crawl spider_demo
scrapy crawl spider_demo -o test.json 保存为json格式

也可以在该项目目录下新建 main.py ,就不用再命令行中执行了。
windows环境下:

from scrapy import cmdline
cmdline.execute('scrapy crawl spider_demo'.split())

数据保存到表格中(保存为.csv)解决间隔空行的问题

scrapy crawl spider_demo -o test.csv 保存到表格里,如果你是第一次运行应该会出现间隔空行,解决方法:
https://blog.csdn.net/uvyoaa/article/details/81234972

保存后的csv编码问题

先用notepad++打开编码格式选择‘utf-8-BOM’,保存即可。

扫描二维码关注公众号,回复: 3383801 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_42776455/article/details/82845475