初窥scrapy爬虫

2017-10-30  21:49:55

前言:

初步使用scrapy爬虫框架,爬取各个网站信息

系统环境:

64位win10系统,装有64位python3.6,IDE为pycharm,使用cmd命令行工具

预备知识:

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似,以下是最有用的路径表达式:

 

 代码:

import scrapy

class JulyeduSpider(scrapy.Spider):
    name = 'julyedu'
    start_urls = ['https://www.julyedu.com/category/index']

    def parse(self,response):
        for julyedu_class in response.xpath('//div[@class="course_info_box"]'):
            print (julyedu_class.xpath('a/h4/text()').extract_first())
            print (julyedu_class.xpath('a/p[@class="course-info-tip"]/text()').extract_first())
            print (julyedu_class.xpath('a/p[@class="course-info-tip info-time"]/text()').extract_first())

            yield {'title':julyedu_class.xpath('a/h4/text()').extract_first(),
                   'desc':julyedu_class.xpath('a/p[@class="course-info-tip"]/text()').extract_first(),
                   'time':julyedu_class.xpath('a/p[@class="course-info-tip info-time"]/text()').extract_first()}

代码解释:

首先建立一个文件名为“julyedu_spider”的py文件,导入scrapy框架,然后创建一个JulyeduSpider的类,名字为'juyedu',start_urls为起始的网址。

然后定义解析网页的方法parse,我们需要获取标题,描述,时间等信息,因此右键检查,

'//div[@class="course_info_box”]'表示选取属性为"course_info_box”标签的子元素,而不管他们的在文档中的位置
'a/h4/text()'表示a标签的子标签h4的文本内容
'a/p[@class="course-info-tip"]/text()'表示a标签的class属性为“..”的p标签的文本内容
'a/p[@class="course-info-tip info-time"]/text()'同理
yield表示创建对应的字典,将数据导入到json,xml,csv等格式的文件中
保存文件后,我们打开cmd窗口,注意要在py文件的目录下打开(按住shift右键即可),输入
scrapy runspider julyedu_spider.py

即可看到打印的内容

再输入

scrapy runspider julyedu_spider.py -o julyedu_class.csv

即可将爬取数据保存到CSV文件中

另外

再补充scrapy shell的用法,同样我们需要在进入项目的根目录,在命令行中输入:

scrapy shell 'https://www.julyedu.com/category/index'

即可加载shell,会获得一个response回应,然后输入

response.xpath('xpath路径')

即可得到所需的内容

 

转载于:https://www.cnblogs.com/yqpy/p/7761527.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值