原视频教程:Python爬虫基础5天速成(2021全新合集)Python入门+数据可视化
1. 概述
1.1 本练习简介
本练习的任务是爬取豆瓣TOP250电影数据,对数据可视化处理,接着用flask搭建简易网站,使用nginx+uwsgi部署,最后部署的网站展示效果如下。
2. 爬取网站
2.1 分析目标网站URL
经过分析发现豆瓣TOP250网站向服务器发送get请求,返回25条电影信息,get请求的start参数为该25条电影的第一条的索引值,所以只需更改start参数0、25、50、…、225,请求10次即可即可获取到TOP250所有电影信息。
2.2 urllib
测试urllib
最简单的请求形式
1 | import urllib.request |
post请求
1 | import urllib.request |
timeout处理
1 | import urllib.request |
构造请求对象
1 | import urllib.request |
设置请求对象的请求方法
1 | import urllib.request |
4. nginx + uwsgi部署
效果查看: 豆瓣TOP250
4.1 uwsgi
uwsgi配置参考视频
需要在虚拟环境中安装uwsgipip install uwsgi
当flask创建的对象名称为application时,-w 或者 配置文件中的module不需要指定对象名称,否则需要指定,比如为myapplication时,命令参数 -w douban_wsgi:myapplication 配置文件 module = douban_wsgi:myapplication
发现使用uwsgi部署,响应函数中有print()函数时,会报错 RuntimeError: reentrant call inside <_io.BufferedWriter name=2>
创建uwsgi入口程序
在项目根目录下创建uwsgi入口程序douban_wsgi.py
1 | # app为flask python文件名, application为该文件中创建的flask对象名称 |
uwsgi --socket 0.0.0.0:8080 --protocol=http -w douban_wsgi
可以通过上述命令启动,但是要保证创建的flask对象名称为application,否则报错加载不到app
创建uwsgi配置文件
在项目根目录下创建uwsgi配置文件douban.ini
1 | [uwsgi] |
uwsgi service
可以利用systemd管理uwsgi服务器开启与关闭,创建/etc/systemd/system/douban.service文件
systemd简介
1 | [Unit] |
保存该服务配置文件后,使用下方命令启动服务器sudo systemctl start douban.service
使用下方命令设置开启自启动sudo systemctl enable douban.service
4.2 nginx
本文使用的是ubuntu 18.04 apt 安装nginx 1.14.0
nginx简介sudo apt install nginx
修改nginx配置
修改/etc/nginx/sites-enabled/default文件匹配规则
1 | location / { |
启动nginx
sudo nginx
如果启动失败,提示80端口已经被占用,应该是安装完nginx后其自动启动,使用下方命令重新载入配置文件sudo nginx -s reload