1.scrapy:爬虫框架
-框架:集成了很多功能且具有很强通用性的一个项目模板
-如何学习框架:(重点:知道有哪些模块,会用就行)
-学习框架的功能模板的具体使用.
功能:(1)异步爬取(自带buffer)
(2)高性能的数据解析+持久化存储操作.
2.scrapy环境安装:
3.scrapy数据解析
scrapy使用流程
(1)首先,可以切换想要创建的目录,直接在下面的Terminal中创建一个工程,切换回上一层目录.
(2)创建一个工程命令:scrapy startproject scrapy1
(3)看一下目录结构,我们先了解spiders文件夹和settings.py文件
(4)settings.py里边,我们需要进行相关的属性配置
spiders文件夹下面,我们需要新建"爬虫文件",
我们再cd到我们刚才新建的工程内: cd scrapy1
创建爬虫文件:scrapy genspider 爬虫文件名 起始url
scrapy genspider first www.xxx.com
(5)下面,我们看一下穿件的爬虫文件first.py:
爬虫程序first.py,详细描述
下面执行爬虫程序(见下图):scrapy crawl first
我们看起来是仅仅执行这一个爬虫文件,但其实是执行了这整个工程
如果仅仅执行这一个爬虫文件是没有任何意义的.
运行:
得到的内容,很像是一些日志信息.
(6)我们可以看到其中有一条是"遵循robotstxt_obey"遵循robots协议,这也就意味着我们爬取不到任何的数据,
因此我们应该设置,不遵从robots协议,具体在settings.py里边设置,
(7)下面我们再在设置里,写"遵循UA伪装"
(8)这个时候,我们再次运行这个爬虫程序:
得到下面的结果:
(9)start_urls列表里边的url会自动发送请求的,不管有多少个都会发生请求.
parse这个函数就会得到response响应的响应
(10)我们看到的信息可能会干扰我们看信息,我们可以设置不看日志
这个时候,我们可以看到只要结果数据
2.爬取糗事百科中的作者名称
(1)回退到上一层:
创建一个项目:scrapy startproject qiubaiPro
(2)注意:我们创建爬虫文件一定要进入创建的工程内
(3)先实现UA伪装和robots协议改写
(4)下面,我们再实现爬虫文件的编写,先找到一个总的id="content-left",进行id定位
一步步,推导出作者的这个名称:
爬虫程序:qiubai.py
运行:下面的内容:
出不来结果,原因是xpath出现的问题,
a的前边少了一个/
我们可以通过检查,看下日志,检查下错误出现在哪个地方:scrapy crawl qiubai(爬虫的文件名)
(5)下面是重新启动程序之后重新打开的命令:
我看看到得到的结果
下面我们加上extract()进行处理取数据
如何取出列表中很多条的数据?
Terminal中 cls命令是将内容推到上边
下面我们改变一下内容
我们得到下面的结果:
当我们只知道列表中有一个数据用下边的方法extract_first()
extract() 列表中有多条数据的时候,我们需要将内容拼接起来.
运行.这个时候我们可以拿到作者和笑话,还有评论人的名称
这个时候,我们将上边的代码中的break去掉,再次运行
运行,得到全部的作者和笑话