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列表中的第一个数据

相关推荐
guodingdingh23 分钟前
软件开发工作问题总结0718
java·开发语言·数据库
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
想会飞的蒲公英3 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记4 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
CCPC不拿奖不改名5 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code5 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook5 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
Miao121315 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言