二、scrapy框架中(pipelines、settings、iterms都是干嘛用的?)

(一)scrapy 与 requsts与beautifulsoup的区别是什么呢?

个人粗暴的认为:

1、scrapy最牛X,大框架,大工程,往里可以添加好多库,内置css和xpath selector,非常方便。

2、requests呢,爬取个妹子图啊,个性化定制的东西比较简洁。用xpath解析还得fromlxmlimporthtml。

3、bs4呢,纯python写的,有点慢。而且有点过时。(有可能是我还没用明白)

总结:

reqests,beautifulsoup都是库,Scrapy是框架

Scrapy中可以加入requests beautifulsoup

Scrapy基于twisted,异步的,一条线卡死了,另一条线继续运行。

(二)pipelines、settings、iterms都是干嘛用的?CSS和Xpath的区别是什么?

Item:保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。

spiders:爬虫模块,负责配置需要爬取的数据和爬取规则,以及解析结构化数据

pipelines:管道模块,处理spider模块分析好的结构化数据,如保存入库等

Selectors选择器:

Scrapy提取数据有自己的一套机制。它们被称作选择器(seletors),因为他们通过特定的 XPath 或者 CSS 表达式来“选择” HTML文件中的某个部分。

Xpath爬取属于树状结构,一层一层从上向下拨开。

Css只要抓住关键字,再先顶一下标签就可以提取出来。个人比较喜欢css提取方式,简单轻松直观。

(三)搭建scrapy的入口 start your url

首先在虚拟环境下进入你的文件夹,我的项目的名字是mm(这部是关键,一定不能忘记,不然不会成功)

cd mm

然后,虚拟环境下终端输入:

scrapy genspider jobbole blog.jobbole.com

(四)写一个自己的main.py文件,然后调用命令行

首先,终端虚拟环境下输入:

scrapy crawl jobbole

启动jobbole

然后,main.py编写代码

fromscrapy.cmdlineimportexecute

importsys

importos

sys.path.append(os.path.dirname(os.path.abspath(__file__)))# 自动的导入mm的路径,不会换台电脑就废了

execute([“scrapy”,”crawl”,”douban”])# 调用excute函数,传递数组进来

(五)调试程序之前,setting一定要配置一下。

不然robot协议会出现问题,srapy会默认读取每个网站的robot协议,爬虫会很快停掉的

《二、scrapy框架中(pipelines、settings、iterms都是干嘛用的?)》

(六)打断点,调试一下,看看是否导入成功

《二、scrapy框架中(pipelines、settings、iterms都是干嘛用的?)》 debug打断点测试

response=HtmlResponse 是200, 代表服务器返回正常。ok可以继续开展爬取工作了

接下来就该获取url的值,并保存在字段中了。

    原文作者:阿轲666
    原文地址: https://www.jianshu.com/p/2d6dbe6263a8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞