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
3.安装lxml,命令行运行:
pip install lxml
4.安装PyQuery,命令行运行:
pip install 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
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
SCF python3.6环境demo