一、爬虫基本架构

url 管理模块

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

网页下载模块

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

实现方式

  • 通过 url 下载
from urllib.request import urlopen
test_url = "https://wztlink1013.github.io"
response = urlopen(test_url)
print (response.getcode()) # 200 表示访问成功
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 框架架构图

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

四、Scrapy 使用

使用 SOP

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

常用命令

参考

  • 查看其官方文档
  • 简书