专栏首页蛮三刀的后端开发专栏【python爬虫】scrapy框架笔记(一):创建工程,使用scrapy shell,xpath

【python爬虫】scrapy框架笔记(一):创建工程,使用scrapy shell,xpath

scrapy是个好东西,它的官方文档写的很详细,很适合入门。链接:http://scrapy-chs.readthedocs.io/zh_CN/1.0/index.html

记录点东西免得以后自己忘记。网上scrapy教程一搜一大把,只记录一些认为比较重要的学习思路。有什么技术问题欢迎留言评论!

1. 创建工程注意事项

框架结构和django蛮像的,一眼就能看个大概。其中setting.py在之后的用处很大,LOG_LEVEL并没有默认写在里面,默认是LOG_LEVEL= ‘DEBUG’, 每次运行爬虫输出很多信息,一开始很有用,毕竟还不熟悉,到了后来,每次都输出抓取到的list显得太繁琐了,可以改成LOG_LEVEL= ‘INFO‘, ’WARNING‘ ’ERROR‘,我现在一般放在INFO

以下几个在一开始学习时可以先设置为以下设置

DOWNLOAD_DELAY = 5(防封,一般2就足够)

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'(防封)

COOKIES_ENABLED = False(防封)

2.scrapy shell

对于我来说,shell最大的用处是测试xpath和re是否抓对,其他功能还没怎么接触。

在终端里输入:scrapy shell "www.baidu.com"  (不带引号也可以,但对一些特殊符号的网址最好带引号,不然会出错)

运行后的一些指令:

response.body: 查看网页整个源代码

response.xpath: 用xpath找出符合的list

respose.xpath().re(): xpath后混合re(复杂的网页用得比较多)

在scrapy shell中确定好匹配式方便之后直接码代码。

3.xpath

详细教程可以看: http://www.w3school.com.cn/xpath/index.asp

用xpath有偷懒办法,就是用类似chrome的浏览器开发者工具(很多其他浏览器基本都有,搜狗等),在待抓取网页按F12,或者直接选取想提取的文字,右键审查元素。

如上网页抓出来后(千里之外)是://*[@id="blog_rank"]/li[4]/span

其实这样的li[4]不太好,最好使用其它标签属性抓取,不然有时候网页的显示顺序变化后,比如有时候缺少一个标签(豆瓣电影就这样,都是泪)这样的依靠位置抓取很不靠谱。所以尽量找别的属性抓,例如可以靠“排名:”正则匹配一下。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java并发知识点快速复习手册(上)

    调用 Thread.sleep() 方法使线程进入限期等待状态时,常常用“使一个线程睡眠”进行描述。

    后端技术漫谈
  • [scrapy]scrapy-redis快速上手/scrapy爬虫分布式改造

    提示:本文为快速上手文章,有些操作的具体步骤不详细讲,自行百度通用解法,省略的部分我认为你可以自行解决,如果遇到问题,请留言提问

    后端技术漫谈
  • Python学习笔记(七)——进程和线程

    很多时候,子进程并不是自身,而是一个外部进程。我们创建了子进程后,还需要控制子进程的输入和输出。

    后端技术漫谈
  • python网络爬虫(14)使用Scrapy搭建爬虫框架

    爬虫框架也许能简化工作量,提高效率等。scrapy是一款方便好用,拓展方便的框架。

    嘘、小点声
  • 谷歌新论文:让机器人依靠视觉识别抓取特定物体

    安妮 编译自 arXiv 量子位出品 | 公众号 QbitAI 近日,谷歌团队在arXiv上发布了新论文《End-to-End Learning of Sema...

    量子位
  • VXLAN篇之Multi-Pod

    之前的《VXLAN篇之进阶》说到了multi-pod,multi-fabric,multi-site。这次,再把multi-pod给填上!

    SDNLAB
  • 企业人力资源管理系统自定义解决方案

    在招聘阶段,通过Teamface系统平台,可随时发起招聘申请,待审核通过后,通过Teamface招聘管理,可一键发布职位需求;第三方招聘平台的简历通过Teamf...

    你看我像不像你未来的老公
  • 2021年,哪些黑科技将进入我们的生活?

    据MIT Technology Review报道,如果水晶球的预测是正确的,2021年将是有史以来最好的科技年份。届时,你可以坐在无人驾驶汽车里吃着实验室培育出...

    机器人网
  • 分布式缓存--一致性hash原理和hash槽,以及算法实现

    我们在使用n台存储设备存储数据的时候,常规做法有将数据根据key%n这样计算放在哪台服务器,但是在扩容的时候就会遇到数据迁移的问题,比如扩容m台服务器,以前是k...

    yingzi_code
  • Huggingface 预训练模型权重下载的问题

    Hugging face是一个专注于NLP的公司,拥有一个开源的预训练模型库Transformers ,里面囊括了非常多的模型例如 BERT GPT 等

    mathor

扫码关注云+社区

领取腾讯云代金券