py工程+爬虫

一.pip的使用

1.如果你的项目已经安装了所需依赖,可以通过 pip freeze 命令自动生成该文件,包含当前环境中所有第三方库及其版本

python 复制代码
pip freeze > requirements.txt

2.在新环境中(如另一台电脑、服务器),只需执行以下命令,即可自动安装文件中列出的所有依赖

python 复制代码
pip install -r requirements.txt

3.可查看 pip 当前的默认安装源(即从哪个镜像站下载包)

python 复制代码
pip3 config list

4.配置pip的清华镜像源

python 复制代码
mkdir -p ~/.pip
echo "[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple" > ~/.pip/pip.conf

二.创建py项目和项目结构解释

选择Python 解释器的环境类型

1. Project venv

基于 Python 内置的 venv 模块创建项目专属的虚拟环境

环境会被创建在项目目录内(如 .venv 文件夹),与其他项目和系统全局环境完全隔离。

一般我们自己创建项目选择这个

2. Base conda

使用 Anaconda/Miniconda 的全局基础环境

一般不建议使用

3. Custom environment

手动指定一个已存在的 Python 解释器路径(可以是系统全局 Python、其他虚拟环境、Conda 环境,甚至远程环境)。

项目结构解释

  • .venv(虚拟环境目录)

    • 是 Python 的 venv 虚拟环境,用于隔离项目依赖,避免与其他项目或系统环境冲突。
    • bin :包含虚拟环境的可执行文件,如激活 / 退出环境的脚本、pip 工具等。
    • lib :存放虚拟环境中安装的 Python 库(如你之前安装的 selenium 就会在这个目录下)。
    • pyvenv.cfg:虚拟环境的配置文件,记录环境的创建信息(如 Python 版本、是否隔离系统包等)。
  • requirements.txt :Python 项目的依赖清单文件,记录项目需要安装的包及其版本,方便在其他环境中快速复现依赖(可通过 pip install -r requirements.txt 一键安装所有依赖)。

  • External Libraries :IDE(如 PyCharm)显示的外部库区域,列出项目可使用的 Python 标准库和已安装的第三方库(如虚拟环境中的 selenium 会在这里展示)。

  • Scratches and Consoles:IDE 的临时文件和控制台区域,用于临时代码测试、运行结果输出等。

三.爬虫

爬虫使用的工具

requests:请求工具

BeautifulSoup4+PyQuery:网页数据提取

selenium:自动化控制浏览器,需要浏览器驱动包

scrapy:爬虫框架

反爬常见问题

1.需要执行js脚本才能获取信息

使用selenium

2.别人会验证header中的信息

改header中的user-agent来伪装浏览器

3.栏位登陆(账号密码登录)

可能需要验证码二阶段认证啥的了,会非常麻烦

4.需要登陆验证

放入cookie

5.请求太多封ip

使用proxy改ip

6.csrf token

需要使用selenium先get在post

7.前端出现懒加载情况

使用selenium模拟下滑,在爬取

四.分布式爬虫scrapy

前置知识

安装scrapy

bash 复制代码
pip install scrapy

创建scrapy项目

bash 复制代码
scrapy startproject demo1

cd到spiders文件下创建爬虫文件

bash 复制代码
scrapy genspider 爬虫名字 网页的域名

spiders项目结构解析

bash 复制代码
spiders
        __init__.py
        自定义的爬虫文件.py ‐‐‐》由我们自己创建,是实现爬虫核心功能的文件
    __init__.py
    items.py ‐‐‐》定义数据结构的地方,是一个继承自scrapy.Item的类
    middlewares.py ‐‐‐》中间件 代理
    pipelines.py ‐‐‐》管道文件,里面只有一个类,用于处理下载数据的后续处理
                      默认是300优先级,值越小优先级越高(1‐1000)
    settings.py ‐‐‐》配置文件 比如:是否遵守robots协议,User‐Agent定义等

运行爬虫文件

bash 复制代码
scrapy crawl 爬虫名称
注意:应在spiders文件夹内执行

scrapy的工作原理

自己的爬虫文件

response的方法

response.text ‐‐‐》响应的是字符串
response.body ‐‐‐》响应的是二进制文件
response.xpath()‐》xpath方法的返回值类型是selector列表
extract() ‐‐‐》提取的是selector对象的是data
extract_first() ‐‐‐》提取的是selector列表中的第一个数据

相关推荐
Sylvia33.2 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想2 小时前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
ai小陈4 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
2601_962299247 小时前
Azure python操作系统列表
python·操作系统·azure·虚拟机·存储配置文件
2601_962071577 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
学术 学术 Fun8 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio
淡海水8 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
2601_962100548 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
CS_Zero9 小时前
C语言sizeof是函数吗?
c语言·开发语言
二进制漫游记9 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding