python爬虫笔记

python爬虫笔记

可能用到的标准库及第三方库

  1. 下载数据 - urllib / requests / aiohttp / httpx
  2. 解析数据 - re / lxml / beautifulsoup4 / pyquery
  3. 缓存和持久化 - mysqlclient / sqlalchemy / peewee / redis / pymongo
  4. 生成数字签名 - hashlib
  5. 序列化和压缩 - pickle / json / zlib
  6. 调度器 - multiprocessing / threading / concurrent.futures

URL 管理器去重方式 ---- 防止重复爬取数据

  1. 内存去重 ---- 集合 set()
  2. 关系数据库去重
  3. 缓存数据库去重

  1. UA伪装
    UA :user-agent 请求载体的身份标识
    门户网站的服务器,会检测对应请求的载体身份标识,如果检测到某一请求的载体身份标识,为某一款浏览器,则说明此请求为一个正常请求。
    如果检测到某一请求的载体身份标识,不是某一款浏览器,则表示此次请求,不是一个正常的请求(爬虫),则服务器端就很可能拒绝此次访问请求。
    UA伪装,就是将我们的爬虫程序,伪装成某一款浏览器,躲避门户网站的反爬策略,从而实现我们的数据爬取。
  2. 捕获动态数据(AJAX)
  3. 数据解析
    正则
    bs4
    beautifulsop doc zh_CN
    xpath
    1). /html/head/title: 选择HTML文档中 <head> 标签内的 <title> 元素
    2). /html/head/title/text(): 选择上面提到的 <title> 元素的文字
    3). /td: 选择所有的 <td> 元素
    4). //div[@class=“mine”]: 选择所有具有 class=“mine” 属性的 div 元素
  4. requests 返回数据类型
    • text – 字符串,例如文本数据,正张网页内容等
    • content – 二进制,例如图片数据
    • json – json对象,json格式数据

目录组织结构

Foo/
|-- bin/
|   |-- foo
|
|-- foo/
|   |-- tests/
|   |   |-- __init__.py
|   |   |-- test_main.py
|   |
|   |-- __init__.py
|   |-- main.py
|
|-- docs/
|   |-- conf.py
|   |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README

说明:

bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。

foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。

docs/: 存放一些文档。

setup.py: 安装、部署、打包的脚本。

requirements.txt: 存放软件依赖的外部Python包列表。

README: 项目说明文件。

以上,
持续更新中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值