PyQuery库是一个很强大而又灵活的网页解析库,是实现爬虫功能的很好选择。那么在SCF(无服务器云函数)中是否可以实现呢?

是可以的!下面让我们来实践一下。

准备环境:

1.linux CentOS 7.4 64位服务器一台,预装python2.7.5

2.安装pip工具,不知道可以度娘

3.开通SCF服务,创建Python2.7环境函数

搭建本地环境:

1.如果pip不是最新版,要更新pip为最新版本,命令行运行:

python -m pip install --upgrade pip

2.安装wheel,命令行运行:

pip install wheel 

安装wheel

3.安装lxml,命令行运行:

pip install lxml

安装lxml

4.安装PyQuery,命令行运行:

pip install pyquery

安装pyquery

5.安装selenium测试工具

pip install -U selenium

6.创建一个demo,index.py

示例代码为:

# -*- coding: utf8 -*-
from pyquery import PyQuery as pq
from lxml import etree

doc = pq('https://cloud.tencent.com')
print(doc)

7.测试本地代码,命令行执行:

python index.py

测试本地爬虫功能

页面爬取成功。

发布至SCF:

1.创建打包目录

mkdir /data/myscf

2.复制环境:

pip install PyQuery -t /data/myscf
pip install lxml -t /data/myscf/
pip install pyquery -t /data/myscf/

3.复制测试代码index.py

打包目录结构

4.执行打包命令:

cd /data/myscf && zip myscf.zip * -r

5.将压缩包myscf.zip上传至SCF

SCF控制台上传zip包

6.验证效果:

页面抓取成功

验证成功。开始您的爬虫功能吧。

注:如果是python3.6环境,验证时报“{"errorCode":1,"errorMessage":"/var/user/lxml/etree.so: undefined symbol: _Py_ZeroStruct"}”,复制环境时指定版本用 pip install lxml==3.6.4 r -t /data/myscf/

SCF python2.7环境demo

#myscf_PyQuery27.zip#

SCF python3.6环境demo

#myscf_PyQuery36 .zip#

文章来源于腾讯云开发者社区,点击查看原文