一、爬虫基本架构

url管理模块

  • 就是管理自己爬取的的网页不要重复爬取,避免爬取进入死循环
  • 使用python当中的set数据结构

    网页下载模块

    将对应的url模块下载到本地或者读入内存

实现方式

  • 通过url下载

    1. from urllib.request import urlopen
    2. test_url = "https://wztlink1013.github.io"
    3. response = urlopen(test_url)
    4. print (response.getcode()) # 200 表示访问成功
    5. print (response.read())
  • 通过Request访问

  • 通过cookie访问

网页解析模块

从已经下载的网页中爬取数据,实现方式有:

  1. 正则表达式
  2. html.parser
  3. BeautifulSoup:结构化解析网页
  4. lxml
  5. 结构化解析
  6. DOM(Document Object Model),树形结构,就是html的基本骨架

二、BeautifulSoup解析网页

三、Scrapy

Scrapy基础

  • 是一个爬虫框架,同时易扩展,可以添加新的模块达到自定义扩展
  • 输出格式多样:json,csv,xml等
  • 自动处理编码

    Scrapy框架架构图

爬虫架构和Scrapy框架使用 - 图1

下载方法以及问题,在anaconda博客中

四、Scrapy使用

使用SOP

  • 创建工程
    • 键入cmd cd到需要下载的目录下
    • 输入scrapy startproject tutorial(最后是项目名字)
    • !此后所有有关命令的操作,均在下一级文件夹下,也有是有cfg文件后缀的文件夹下
  • 定义Item,构造爬取的对象
  • 编写spider,爬虫主体
    • scrapy genspider amazon_spider https://……
  • pipelines,默认return item
  • 编写其他配置,其中pipeline用于处理爬取后所得到的结果
  • 执行爬虫
    • scrapy crawl amazon_spider

常用命令

参考