【读书笔记】Python网络数据采集


《python网络数据采集》 读后感&笔记

网络采集基本知识

互联网基础知识

  1. 常见的互联网数据交换方式
    ①:请求域名的服务器地址
    ②:服务器间请求资源(网页,图片等)
    ③:服务器上传资源
    常见客户端-服务器互联网模型数据交换方式

  2. 协议的定义和常见类型
    每个协议都为请求头定义了不同的字段,采用不同的数据编码、收发地址或名称,以及其他数据类型。
    ①:HTTP(Hypertext Transfer Protocol,超文本传输协议):用于远程络服务器通信(网站信息的请求、发送和接收)的协议
    ②:VOIP协议:打电话
    ③:SMTP协议:收邮件
    ④:FTP协议:上传邮件

  3. HTTP协议简介
    ①:组成:一个HTTP消息包括两部分:头字段(header field)和数据字段(data field)。每个头字段由一对标题和值构成。这些字段的标题是HTTP标准预先定义好的。
    ②:常见的头字段
    |名 称|描 述|示 例
    |-|-|-
    |User-Agent|字符串,表示发出请求的浏览器和操作系统信息|Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.

BeautifulSoup

安装
运行
建立可靠的网络连接

HTML解析

正则表达式

Lambda表达式

初级采集处理

采集遍历单个域名

采集整个网站

通过互联网采集

通过Scrapy采集

中级采集处理

通过API采集

Twitter API

Google API

存储数据

数据存储到CSV

数据存储到MySQL

读取文档

文档编码

纯文本

CSV

Word

PDF

数据清洗

直接编写代码后清洗数据

数据存储后清洗数据

高级采集处理

穿越网页表单与登录窗口进行采集

JavaScript采集

远程采集

远程采集工具包和资源

好处

  1. 避免IP地址被封杀
  2. 移植性与扩展性

Tor代理服务器

远程主机

  1. 从网站主机运行
  2. 从云主机运行

避免采集陷阱

修改请求头

处理cookie

常见表单安全措施

  1. 隐含输入字段值

自然语言处理

自然语言工具包

马尔可夫模型

图像识别与文字处理

图像识别与文字处理工具包

操作:处理格式规范的文字

操作:读取验证码与训练Tesseract

操作:获取验证码提交答案

爬虫测试网站

Python单元测试

Selenium单元测试

两种测试的选择

笔记


向网络服务器发送GET请求以获取具体网页,再从网页中读取HTML内容,最后做一些简单的信息提取,将我们要寻找的内容分离出来。

标准库

urllib

简介

官方API

  1. urllib是Python的标准库(就是说你不用额外安装就可以运行这个例子),包含了从网络请求数据,处理cookie,甚至改变像请求头和用户代理这些元数据的函数
  2. Python 3.x里,urllib2改名为urllib,被分成一些子模块:urllib.request、urllib.parse和urllib.error。尽管函数名称大多和原来一样,但是在用新的urllib库时需要注意哪些函数被移动到子模块里了
  3. urlopen用来打开并读取一个从网络获取的远程对象(读取HTML文件、图像文件,或其他任何文件流)

示例

  1. 1
    2
    3
    from urllib.request import urlopen
    html = urlopen("https://python3-cookbook.readthedocs.io/zh_CN/latest/index.html#")
    print(html.read())
  2. 用Python抓网页的注意事项:http://www.mamicode.com/info-detail-314948.html

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2018 海球的博客 All Rights Reserved.

UV : | PV :