zoukankan      html  css  js  c++  java
  • scrapy框架使用

    Scrapy入门

    • scrapy是框架 类似于车子 会开车
    • 采用异步框架 实现高效的网络采集
    • 最强大的框架 没有之一

    Scrapy安装

    • pin install scrapy --->出现错误提示:VC++14.0 Twisted

        解决方法:离线安装 pip install xxx.whl文件

    • scrapy bencn 运行的时候报错 ---->win32

        解决方法:pip install pywin32

    Scarpy入门案例

      1、创建项目

        scrapy startproject xxx(项目名字)

      2、创建爬虫

        scrapy genspider 爬虫名字 网站域名

        注意事项:

           *爬虫名字和项目名字不能相同

             *网站域名是允许爬虫采集的域名

             - baidu.com

       3、解释爬虫文件

          

     1 # -*- coding: utf-8 -*-
     2 import scrapy
     3 
     4 #创建爬虫类 并且继承自scrapy.Spider -->最基础的类,另外几个类都是继承自这个类
     5 class XiciwangSpider(scrapy.Spider):
     6     name = 'xiciwang'   #爬虫名字,必须唯一
     7     allowed_domains = ['www.xicidaili.com'] #允许采集的域名
     8     start_urls = ['https://www.xicidaili.com/nn/'] #开始采集的网站
     9 
    10     #解析响应数据,提取数据或者网址等,就是源码 
    11     def parse(self, response):
    12         pass

      4、提取数据方法

        -正则表达式提取

        -xpath提取

        -css提取

      

      5、运行爬虫

        -scrapy crawl爬虫名称

      6、例子

     

     1 # -*- coding: utf-8 -*-
     2 import scrapy
     3 
     4 #创建爬虫类 并且继承自scrapy.Spider -->最基础的类,另外几个类都是继承自这个类
     5 class XiciwangSpider(scrapy.Spider):
     6     name = 'xiciwang'   #爬虫名字,必须唯一
     7     allowed_domains = ['www.xicidaili.com'] #允许采集的域名
     8     start_urls = ['https://www.xicidaili.com/nn/'] #开始采集的网站
     9 
    10     #解析响应数据,提取数据或者网址等,就是源码
    11     def parse(self, response):
    12 
    13         #提取数据
    14         shuju = response.xpath('//tr')
    15         for i in shuju:
    16             ip = i.xpath('./td[2]/text()').get()
    17             duankou = i.xpath('./td[3]/text()').get()
    18             print(ip,duankou)
    19 
    20         #翻页操作
    21         fangye = response.xpath("//div/a[@class='next_page']/@href").get()
    22         if fangye:
    23             print(fangye)
    24             #拼接网址
    25             # next_url = 'https://www.xicidaili.com/'+fangye
    26             next_url = response.urljoin(fangye)
    27             #发出请求Request callback 是回调函数 就是将请求得到的响应交给自己处理
    28             yield scrapy.Request(next_url,callback=self.parse)
  • 相关阅读:
    基于layui的简易后台管理系统,后期会更新
    java基础语法知识(笔记)——(一)基本变量类型,循环,日期类
    JavaWeb学习总结(笔记)——SSM spring.xml的基本配置
    JavaWeb学习总结(笔记)——SSM中Web.xml文件
    JavaWeb学习总结(笔记)——SSM关键类及其作用
    JavaWeb学习总结(笔记)——关于SSM CRUD上传功能的总结
    JavaWeb——MVC与三层结构
    jquery结合highcharts插件显示实时数据动态曲线图
    jquery结合Highcharts插件实现动态数据仪表盘图形化显示效果
    在IE6/7下表格td标签没有内容时不显示边框?
  • 原文地址:https://www.cnblogs.com/zihkj/p/12260064.html
Copyright © 2011-2022 走看看