【云服务环境】含泪总结:我在云服务安装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 一起交流💬,一起进步💪。
- 微信公众号也可搜【同学小张】 🙏
本站文章一览: