zl程序教程

您现在的位置是:首页 >  其他

当前栏目

爬取套图之新手攻略以及注意事项

2023-03-20 15:30:45 时间

这里以爬取某个网站的套路为例,详细见代码,这里主要说以下几点注意事项:

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 &