这里以爬取某个网站的套路为例,详细见代码,这里主要说以下几点注意事项:
1)导库,其实就类似于Java中框架或者是工具类,底层都被封装好了
安装第三方库:
# Win下直接装的 python3
pip install bs4、pip install requests
# Linux python2 python3 共存
pip3 install bs4、pip3 install requests
导入第三方库:
# 导入requests库
import requests
# 导入文件操作库
import os
# bs4全名BeautifulSoup,是编写python爬虫常用库之一,主要用来解析html标签。
import bs4
from bs4 import BeautifulSoup
# 基础类库
import sys
# Python 3.x 解决中文编码问题
import importlib
importlib.reload(sys)
2)定义方法函数,一个爬虫可能会几百行,所以尽量不要写成一坨
def download(page_no, file_path):
# 这里写代码逻辑
3)定义全局变量
# 给请求指定一个请求头来模拟chrome浏览器
global headers # 告诉编译器这是全局变量 headers
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}
# 函数内使用之前需要
# 告诉编译器我在这个方法中使用的a是刚才定义的全局变量 headers ,而不是方法内部的局部变量。
global headers
4)防盗链
有些网站加入了防盗链,无所不能的 python 解决方案:
headers = {'Referer': href}
img = requests.get(url, headers=headers)
5)切换版本
Linux服务器使用的是阿里云服务器(centos7.4),默认版本 python2,python3 自行安装
[root@AY140216131049Z mzitu]# python2 -V
Python 2.7.5
[root@AY140216131049Z mzitu]# python3 -V
Python 3.7.1
# 默认版本
[root@AY140216131049Z mzitu]# python -V
Python 2.7.5
# 临时切换版本 <whereis python>
[root@AY140216131049Z mzitu]# alias python='/usr/local/bin/python3.7'
[root@AY140216131049Z mzitu]# python -V
Python 3.7.1
6)异常捕获
在爬取的过程中可能存在异常页面,这里我们进行捕获,不影响后续操作:
try:
# 业务逻辑
except Exception as e:
print(e)
python3 mzitu.py
# 或者后台执行
nohup python3 -u mzitu.py > mzitu.log 2>&1 &
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。