python爬取discuz_爬虫技术实践(二)Discuz! 按板块爬取帖子内容实战
Discuz! 是一套由康盛创想开发的通用社区论坛软件系统,成熟度高、覆盖率大。用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。Discuz! 的基础架构采用 PHP + MySQL 实现。
1. 实战环境
由 Ubuntu、Nginx、PHP、MySQL 配置的 Discuz! Docker 环境可从以下链接中下载:
Docker 镜像下载地址
提取码:esdm
1.1 环境配置
1.1.1 配置 Python 环境
Python、requests、pyquery
Python 依赖安装:
pip install requests pyquery
1.1.2 导入 Docker 镜像
$ sudo docker load ubuntu-nginx-php-mysql-discuz-exp-2.tar
1.1.3 启动环境
查看 ubuntu-nginx-php-mysql-discuz:exp-2 的 IMAGE ID
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-nginx-php-mysql-discuz exp-2 368753f87d4f 22 hours ago 1.02GB
镜像的 IMAGE ID 为 368753f87d4f
启动 ubuntu-nginx-php-mysql-discuz:exp-2
$ sudo docker run -itd {IMAGE ID}
1.1.4 进入 Docker 容器
查看已运行的 Docker 容器
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a37b8fa69b5d 368753f87d4f "/bin/bash" 40 seconds ago Up 38 seconds optimistic_hypatia
容器的 CONTAINER ID 为 a37b8fa69b5d
进入容器
$ sudo docker attach {CONTAINER ID}
1.1.5 在容器中启动服务
启动 Nginx PHP Mysql 服务,进入 /root 文件夹,运行 start.sh
# cd /root
# bash start.sh
1.1.6 获取容器的 IP 地址
# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3721 (3.7 KB) TX