小白的scrapy入门之路

Posted mychaelyoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白的scrapy入门之路相关的知识,希望对你有一定的参考价值。

话不多说,让我们进入正题吧!

  安装
  首先,少不了的肯定是python以及scrapy的安装了。可以在python的官网下载安装,官网地址:www.python.org

  由于小编使用的是windows系统,所以使用pip安装会Scrapy时出现以下的问题。

技术分享图片

  出现这样的错误时可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/找到相关的包进行下载安装。

技术分享图片

  创建项目

 

> scrapy startproject Runnob   #">"表示命令行提示符

 

 创建好项目以后就是进入项目目录,创建蜘蛛了:

> scrapy genspider Runnoob http://www.runoob.com/python/python-tutorial.html

 技术分享图片

  这就是我们的项目目录了,上面的main.py和utils文件夹是小编自己加的,这是小编的其他项目,哈哈。

  编写代码

  首先是我们的items.py的代码,也就是我们要爬取什么数据。小编这个项目很简单,就是抓取标题、网址和内容。事不宜迟,放代码吧。

技术分享图片

  小编在这里用了ItemLoader,将处理数据的方法放到了items.py里面做,减少蜘蛛的代码。对于ItemLoader的使用,可以查看scrapy的官方文档。小编英文还可以,所以看的是英文文档,毕竟就算看不懂咱还有翻译工具嘛,边看边学。一边提高英文水平,一边提高自己写代码的水平。
  其次就到我们的蜘蛛代码了:

技术分享图片

  写蜘蛛代码最重要的当然是分析页面。我们可以通过浏览器的调试功能来帮助我们分析页面,打开浏览器按F12就能够打开调试工具查看我们的网页代码了。

技术分享图片

 

 

 

  从上图我们就可以看出,菜鸟教程python的页面非常简单,它所有的链接都放在了这个div id为leftcolumn里面,所以我们通过scrapy提供的css选择器或者xpath选择器就可以从中提取出我们需要的链接。
response.css(‘#leftcolumn a::attr(href)‘)就是提取出所有a标签的href地址,就是我们要爬取的下一页网址。
  通过网页分析,进一步地提取出我们需要的数据。parse函数用于提取下一页的链接,然后生成request请求交给下载器下载页面,回调给parse_detail函数处理。parse_detail从下载器返回的response里提取出要的数据,生成item交给管道(即pipelines)处理。
  pipelines读取到蜘蛛传过来的item对它做进一步的处理,储存到数据库或者用json文件的方式储存等等。
  这是我的pipelines代码:

技术分享图片

 

  这是个异步插入的方法,如果数据量多的话,同步插入会导致数据库出现阻塞。所以我采用了异步的方法,由于懒癌发作,不想写处理异常的代码,所以请大家原谅。小编采用的是mysql,因此要安装mysqlclient的工具用来连接我们的数据库,windows下要在刚刚小编提到的网址去下载安装。
  写到这里也就差不多了,最后就是修改我们的setting.py文件了,把mysql的host,port,db,username,passwd加进去,然后给点面子加个User-Agent。这样我们的小项目也就差不多了。

MYSQL_HOST = ‘localhost‘
MYSQL_DBNAME = ‘runnoob‘
MYSQL_USER = ‘用户‘
MYSQL_PASSWORD = ‘密码‘

  记得还要在Mysql里面创建对应的数据库和数据表,不然等着异常出现吧,哈哈。像小编这样的小白,看到Trackback就头疼呀。
  这就是小编的小项目了,虽然简单,可是别看不起,对于小白来说,没有什么比上手实践更快速地掌握知识的。从小白的路上走来,小编体会到了一个道理,就是别眼高手低,上手来一遍比你看几遍还管用。有不足之处,请各位大牛指出。

  生命苦短,我用python

 csdn地址:https://blog.csdn.net/weixin_43698874/article/details/84075911











以上是关于小白的scrapy入门之路的主要内容,如果未能解决你的问题,请参考以下文章

小白学 Python 爬虫(40):爬虫框架 Scrapy 入门基础对接 Selenium 实战

小白学 Python 爬虫(37):爬虫框架 Scrapy 入门基础 Spider Middleware

小白学爬虫:Scrapy入门

selenium之webdriver详解——小白进阶之路(二)

数据之路 - Python爬虫 - Scrapy框架

scrapy主动退出爬虫的代码片段(python3)