爬虫框架scrapy

安装:

windows:

第1步:

    根据系统版本下载对应twisted,下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

第2步:

    输入以下命令,注意后面的路径是下载的twisted存放的路径名

        pip install C:\Users\Administrator\Downloads\Twisted-18.7.0-cp36-cp36m-win_amd64.whl

第3步:

    再执行pip install scrapy即可完成安装

 

创建项目:

  • 创建项目
    • scrapy startproject firstblood
  • 项目目录结构
    • firstblood
                      firstblood           真正的项目文件
                          __pycache__      缓存文件
                          spiders          爬虫文件存放的地方
                              __pycache__
                              __init__.py
                              lala.py      爬虫文件(*)
                          __init__.py      包的标志
                          items.py         定义数据结构的地方(*)
                          middlewares.py   中间件
                          pipelines.py     管道文件(*)
                          settings.py      配置文件(*)
                      scrapy.cfg           不用管
  • 生成爬虫文件
    • cd firstblood
    • scrapy genspider qiubai www.qiushibaike.com
    • # -*- coding: utf-8 -*-
      import scrapy
      
      
      class LuojisiweiSpider(scrapy.Spider):
          # 爬虫名字
          name = 'luojisiwei'
          # 允许的域名
          allowed_domains = ['https://weixin.sogou.com/']
          # 起始url
          start_urls = ['https://weixin.sogou.com/']
      
          # 解析函数 重写父类方法
          def parse(self, response):
              # response是起始url网址的对象
              print(response) 
              
              # 获取url页面所有内容,字符串
              response.text
              
              # 获取url页面所有内容,字节类型
              response.body
          
              # 获取response的url
              response.url
      
              # 获取响应状态码
              response.status
      
              # 获取响应头
              response.headers
      
              # xpath,scrapy内集成的xpath略有不同,这样获取到的是一个对象的列表,即时只获取到一个对象,也是列表形式
              div_list = response.xpath('//div[@id="content-left"]/div')
              # 后面加extract()方法会把获取到的对象列表转成‘字符串’列表,
              div_rst1 = response.xpath('//div[@id="content-left"]/div').extract()
              # 再通过下标可获得具体的某一个元素的字符串内容,注意,.extract()[0]和[0].extract()效果一样
              div_rst1 = response.xpath('//div[@id="content-left"]/div').extract()[0]
              # 获取标签的属性值
              img_src= response.xpath('//div[@id="content-left"]/img/@src').extract()[0]
              # 获取标签的文本内容
              rst2 = response.xpath('//ul[@class="news-list"]/li/div/h3/a/text()')[0].extract()
              # css选择器获取指定标签
              rst3 = response.css('.txt-box > h3 > a')[0].extract()
              # css选择器获取指定标签的指定属性
              rst4 = response.css('.txt-box > h3 > a::attr(href)')[0].extract()
              # css选择器获取指定标签的文本内容
              rst5 = response.css('.txt-box > h3 > a::text()')[0].extract()

       

  •             
              
              

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值