【云服务环境】含泪总结:我在云服务安装Python爬虫环境Playwright的踩坑实录

  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

在这里插入图片描述


总是想在自己的微信公众号中开发点什么功能,于是我又开始来折腾服务端的环境了。

这次是希望能在服务端配置起爬虫的环境,于是想着装个 Playwright,但没想到遇到这么多坑…

0. 背景

环境:腾讯云服务,CentOS 7,宝塔面板

之前对环境做过的一些配置(安装 Anaconda,打通 GitHub,远程可视化开发):

为什么想到要安装 Playwright ?因为我运行 LangChain 加载URL网页内容时报错了:

在这里插入图片描述
运行的代码是这样的:

urls = ["https://mp.weixin.qq.com/s/2m8MrsCxf5boiH4Dzpphrg"]

from langchain_community.document_loaders import AsyncChromiumLoader
from langchain_community.document_transformers import BeautifulSoupTransformer

# Load HTML
loader = AsyncChromiumLoader(urls)
html = loader.load()

# print("============= html =====================")
# print(html)

# Transform
bs_transformer = BeautifulSoupTransformer()
docs_transformed = bs_transformer.transform_documents(html, tags_to_extract=["h1", "h2", "h3", "span", "code", "p"])

print("================= doc_transformed ===============")
print(docs_transformed)

AsyncChromiumLoader 的背后是 Playwright。为了解决这个问题,于是开启了我艰难的环境搭建过程。

1. Playwright 安装

1.1 基本安装过程

pip install playwright

上面安装完成之后,还需要执行下面命令:

playwright install

1.2 踩坑实录

如果上面啥都没报错,恭喜你,运气太好了。

下面展示我遇到的坑,注意,这是一个连环坑,在解决一个问题的过程中遇到了另一个问题,所以请按顺序阅读,不要跳。

1.2.1 坑一:/lib64/libc.so.6: version `GLIBC_2.28’ not found

解决步骤如下:

​cd /usr/local/
wget https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz --no-check-certificate
tar -xf glibc-2.28.tar.xz
cd glibc-2.28/
mkdir build
cd build/
../configure --prefix=/usr/local/glibc-2.28

执行以上命令,很可能再遇到下面错误。

1.2.2 坑二:These critical programs are missing or too old: make bison compiler

这是因为 make bison compiler 太过老旧,需要升级GCC编译器

在这里插入图片描述
解决方法:

yum -y install centos-release-scl
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
scl enable devtoolset-8 bash

执行上面这一句时,又遇到了下面的错误。

1.2.3 坑三:bash: __vsc_prompt_cmd_original: command not found

解决方法:

vim ~/.bash_profile

在文件中添加:unset PROMPT_COMMAND

source ~/.bash_profile

到此,1.2.3 解决完毕。然后继续 1.2.2 的问题解决:

scl enable devtoolset-8 bash
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile

之后需要升级 make

wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz
tar -xzvf make-4.2.tar.gz
cd make-4.2
sudo ./configure
sudo make
sudo make install
sudo rm -rf /usr/bin/make
sudo cp ./make /usr/bin/
make -v

到此,问题 1.2.2 解决完毕,继续解决 1.2.1 的问题:

cd /{你的下载目录}/glibc-2.28/build/ 
yum install -y bison
sudo ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make  //make 运行时间较长
make install

还有可能遇到下面的错,先不用管。

在这里插入图片描述
至此,问题 1.2.1 解决完毕。验证GLIBC是否存在GLIBC-2.28版本:

strings /lib64/libc.so.6 | grep GLIBC

运行结果里应该能看到 2.28 版本:

在这里插入图片描述

至此,1.2.1 问题解决完毕。重新运行:

playwright install

然后,你还能遇到下面的错误。

1.2.4 坑四:/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ not found

这是因为 libstdc++.so.6 版本低。
在这里插入图片描述
解决方法:

find / -name "libstdc++.so*"

以上命令查找当前服务中所有的 libstdc++.so:

在这里插入图片描述
从中找个版本最高的,执行:

cp /root/anaconda3/lib/libstdc++.so.6.0.29 /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.29 libstdc++.so.6

至此,1.2.4 问题解决完毕。重新运行:

playwright install

应该会看到下面的 warning,先不管。

在这里插入图片描述
至此,认为 Playwright 环境安装成功。再跑下刚开始的程序,成功爬取到数据:

在这里插入图片描述

2. 参考

  • https://blog.csdn.net/NinjaKilling/article/details/125979091
  • https://blog.csdn.net/jiaoyangwm/article/details/134262152
  • https://blog.csdn.net/wuwei_201/article/details/136031168
  • https://blog.csdn.net/tianjinhuaysh/article/details/120901894

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜同学小张 🙏

本站文章一览:

在这里插入图片描述