网络数据采集知识点总结希望对大家有用
-
-
爬虫的合法性探讨
- 法不禁止即为许可
- robots协议
-
隐匿身份
- 高匿商业代理
- TOR(洋葱路由)
-
-
爬虫的分类
- 通用爬虫
- 定向爬虫
-
爬虫程序的一般步骤
URL —> Universal Resource Locator
URI —> Universal Resource Identifier
URI = URL + URN协议://用户名:口令@域名或IP地址:端口/路径1/路径2/资源名称
https://www.baidu.com:443/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.pngHTTP / HTTPS —> 超文本传输协议
HTTP请求 --------> 服务器
请求行 - 命令(GET/POST) 资源路径 协议版本
请求头 - 键值对
空行
消息体 - 发给服务器的数据HTTP响应 <-------- 服务器
响应行 - 协议版本 响应状态码
响应头 - 键值对
~ content-type —> MIME
- text/html
- application/json
- text/xml
- application/pdf
- image/jpeg
- image/png
空行
消息体 - 服务器返回的数据~ 抓取页面
- urllib
- requests
get() / post() —> Response
—> status_code / encoding
—> text / content / cookies
—> json()
Session —> headers / proxies / verify / auth
—> get() / post()
- aiohttp / httpx
~ 解析页面
- 正则表达式解析 —> re
- CSS选择器解析 —> beautifulsoup4 / pyquery
- XPath解析 —> 标签语言的查询语法 —> lxml
~ 数据持久化
- CSV —> csv —> writer() —> csvwriter —> writerow() / writerows()
- Excel —> openpyxl —> Workbook -----------> Worksheet ----------> Cell
—> active —> title —> font / border
—> sheetnames —> row_dimensions —> alignment
—> create_sheet() —> column_dimensions
—> remove_sheet() —> columns / rows
—> save() —> append()
—> cell()
—> add_chart()
- 数据库
~ 关系型数据库
- 编程语言:SQL
- 常见产品:MySQL / Oracle / SQLServer / DB2 / PostgreSQL
~ NoSQL/NewSQL数据库
- ClickHouse / TiDB / MongoDB / Redis
- 分布式文件系统 —> Hadoop —> HDFS + MapReduce / Spark —> Java / Scala / Python
—> Hive —> SQL
~ GFS —> Google File System
~ TFS —> Taobao File System / Tencent File System -
HTML页面的结构
超文本标签语言 —> 所有的内容都放在标签下~ 标签:承载内容
- 文本标签 / 链接标签 / 列表 / 表格 / 表单 / 图片 / 音视频 / 窗口
~ CSS(Cascading Style Sheet