zoukankan      html  css  js  c++  java
  • scrapy框架学习

    scrapy是一个爬虫框架,而beautifulsoup、urllib、requests等是爬虫库,框架和库不同之处在于,库拿过来然后到你的工程里边直接写,框架他会自动的帮你做很多事,你到框架里边去填充你这些东西,那就够了。

    首先创建scrapy工程,命令行输入命令,命名为stock_spider的一个工程:

    scrapy startproject stock_spider

    创建好之后,用pycharm的File->open打开该工程在一个pycharm中。

     scrapy框架的基本目录:(建好scrapy项目之后,会自动生成一些文件。  )

    spiders这个包下就是我们真正写爬虫的地方,items.py里边会定义一些变量,这些变量对应爬虫要爬取的数据,pipelines.py是处理我们数据的一个类,settings.py包含一些配置。

    有了scrapy项目之后,首先要创建一个名字叫tonghuashun的爬虫,命令行:

    scrapy genspider tonghuashun 具体爬虫的URL

    这样就创建了一个爬虫,在spiders包下就自动生成了一个tonghuashun.py这样一个文件。

     parse是解析start_urls中得到的数据,可以用xpath、css选择器等方式回去网页中的标签元素信息,如response.xpath(...)用标签的xpath方式筛选标签。

    然后怎么运行程序呢?

    在stock_spider下新建一个main.py文件,然后在其中写上程序所在的路径,然后执行程序。

    然后运行main.py文件,即可执行到tonghuashun.py中的parse函数代码。

    每次调试xpath定位元素的时候都需要运行一次工程吗?如何快速调试?

    命令行调试,scrapy shell是scrapy爬虫交互的工具,可以很直观的反馈元素是否定位到:

    scrapy shell 网页URL

    进入crapy shell,然后可以用response.xpath(...)选择元素并输出结果,验证是否正确选择了标签。

    然后在parse函数中解析网页数据,然后在其中可以再设置回调函数爬取详情页的内容:

    在信息抓取完之后,该处理信息了,pipelines.py就是处理数据、存储数据的。

    怎么把pipelines.py的逻辑和爬虫tonghuashun.py的逻辑给关联上呢,就需要items.py,在items.py中写上爬虫tonghuashun.py中爬取的数据变量:

     之后在爬虫tonghuashun.py的parse_detail函数中声明一个刚才那个items.py中的类,

    然后在setting.py中再设置一下,才能让tonghuashun.py中爬取的数据送到pipelines.py当中:

    然后开始pipelines.py进行数据处理,讲数据从item中取出来一一处理,存储到文件当中将数据持久化:

    笔记来源:https://www.bilibili.com/video/av36440906?p=67

  • 相关阅读:
    [Oracle 视图] ALL_OBJECTS
    ERwin DM Reverse Engineer 逆向工程介绍
    【转载】系统间接口设计
    【装载】删除Oracle11G
    oracle创建新用户
    eclipse的垂直选择功能
    【转载】改善数据质量从数据剖析(Data Profiling)开始
    干货丨一组图详解元数据、主数据与参考数据
    [转载] 数据测试常用的Data Profiling方法
    【转载】主数据管理(MDM)与元数据管理
  • 原文地址:https://www.cnblogs.com/wisir/p/12256358.html
Copyright © 2011-2022 走看看