二、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协议,爬虫会很快停掉的


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

debug打断点测试

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 14,378评论 4 46
  • 本周看了《明朝那些事儿》第柒部,拐弯中的帝国,讲述了万历年间的关于朝鲜的中日之战,各路人马,各路将领,形形色色,不...
    cc08阅读 1,391评论 0 1
  • “你可不可以不要理我呀!” “你怎么能这样呢?好烦你啊!” “我真的不想这样啊!” 每当听到这些或是埋怨或是嫌弃或...
    ONE_Y阅读 1,567评论 1 0
  • 过于安逸是对历史的不尊重。 几句话,几种表达,却是同样的无奈。 将军坟前无人问,戏子家事天下知。英雄枯骨无人问,戏...
    呆萌的小吃货阅读 4,943评论 0 0

友情链接更多精彩内容