https://www.gravatar.com/avatar/8e10df0bad4c56b3464cd715f8d96c46?s=240&d=mp

Scrapy爬虫基础

安装Scrapy

推荐virtualenv安装,步骤如下:

  1. 如果没有virtualenv,先安装virtualenv
sudo pip3 install virtualenv
  1. 创建一个virtualenv环境
virtualenv --no-site-packages scrapy
  1. 进入目录,激活virtualenv环境
source bin/activate
  1. 安装Scrapy
pip install Scrapy

爬虫基本流程

/images/2019/11/04/ur2im.png

XPath教程

XPath是什么?

  • XPath代表XML路径语言
  • XPath使用“类似路径”的语法来标识和导航XML文档中的节点
  • XPath包含200多个内置函数
  • XPath是XSLT标准中的一个主要元素
  • XPath是W3C的推荐

XPath路径表达式

XPath使用路径表达式来选择XML文档中的节点或节点集。这些路径表达式非常类似于传统计算机文件系统中使用的路径表达式。

重构、测试和调试

重构以提高可读性和灵活性

提高代码的可读性

我们介绍三个简单的重构,使用lambda、方法引用和流,将它们应用到代码中,以提高代码的可读性:

  • 将匿名类重构为lambda表达式
  • 将lambda表达式重构为方法引用
  • 将命令式数据处理重构为流处理

从匿名类到lambda表达式

下面是使用匿名类创建一个Runnable对象和对应的lambda表达式:

Collection API增强

Collection工厂

Java 9引入了一些创建小型集合对象的方法,比如Arrays.asList()

List<String> friends = Arrays.asList("Raphael", "Olivia", "Thibaut");

Arrays.asList()返回一个固定大小的列表,可以对其进行更新,但不能添加或删除元素,否则抛出UnsupportedModificationException异常。

并行数据处理和性能

并行流

通过调用parallelStream方法,可以将集合转换为并行流。并行流是将元素分割成多个块的流,使用不同的线程处理每个块。因此,你可以自动划分指定操作的工作负载在多核处理器的所有核心上,并使它们一样忙。