爬虫


爬虫程序的流程

下载页面-->提取页面中的数据-->提取页面中的链接-->URL去重

Scrapy简介及安装

在任意操作系统下,可以使用pip安装Scrapy,例如:
$pip install scrapy
为确认Scrapy已安装成功,首先在Python中测试能否导入Scrapy模块:
    >>>    import    scrapy                    
    >>>    scrapy.version_info    
        (1,    3,    3)
通过了以上两项检测,说明Scrapy安装成功了。Scrapy安装过程中可能会遇到一些问题,可能还要
安装win32api、lxml等,应根据报错内容百度相应的方法可以解决,也有可能环境缺少安装包,安装即可

编写Scrapy爬虫

爬取http://books.toscrape.com网站中取书籍信息,这样的书籍列表页面一共有50页,每页有20本书,第一个例子应尽量简单。我们下面以这个项目仅爬取所有图书(1000本)的书名和价格信息。

1.创建项目:在命令行输入scrapy startproject example
使用tree查看目录结构:tree    
2.分析页面,一般用xpath或者css得到元素
3.实现Spider
实现爬虫的Python文件应位于exmaple/spiders目录下,在该目录下创建 新文件book_spider.py。然后,在book_spider.py中实现爬虫BooksSpider,
代码如下:
import    scrapy
class    BooksSpider(scrapy.Spider):
    name = "books"
    start_urls = ['http://books.toscrape.com/']
    def parse(self, response):
        for book in response.css('article.product_pod'):
            name = book.xpath('./h3/a/@title').extract_first()
            price = book.css('p.price_color::text').extract_first()
            yield  {'name':name,
                    'price': price,
                    }
            next_url = response.css('ul.pager    li.next    a::attr(href)').extract_first()
            print(next_url)
            if next_url:
                next_url = response.urljoin(next_url)
                yield scrapy.Request(next_url, callback=self.parse)

上述代码注解:
name属性
    一个Scrapy项目中可能有多个爬虫,每个爬虫的name属 性是其自身的唯一标识,在一个项目中不能有同名的爬虫,本例中的爬虫取名为'books',这个是在运行时需要用到。
  start_urls属性
  一个爬虫总要从某个(或某些)页面开始爬取,我们称 这样的页面为起始爬取点,start_urls属性用来设置一个 爬虫的起始爬取点。在本例中只有一个起始爬取 点'http://books.toscrape.com'。
  parse方法
    当一个页面下载完成后,Scrapy引擎会回调一个我们指定的页面解析函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值