前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
如果大家想要完成爬虫程序,先安装和导入几个包
requests 网络库
bs4 页面选择器 网页上筛选数据
安装包
pip install requests
pip install bs4
os python语言自带的一个工具库
ssl工具包 https协议的网站是基于ssl加密从而传输数据的一种网站
一般爬虫的过程
模拟浏览器
强制取消证书认证 看情况去做的 http的协议网站 则不需要
requests去做http请求,并且拿到网页数据
数据筛选 拿到我们想要的数据
下载
本次目标
爬取堆糖网图片
https://www.duitang.com/
爬虫代码
导入工具
import ssl
import os
# 下载包
import urllib.request
# 网络包
import requests
# 网页选择器
from bs4 import BeautifulSoup
请求头
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
默认请求https网站不需要证书认证
ssl._create_default_https_context = ssl._create_unverified_context
爬虫流程
def get_images(url):
images_html = requests.get(url, headers=headers).text
# print(images_html)
soup = BeautifulSoup(images_html, 'lxml')
images_list = soup.find_all('div', class_='mbpho')
# print(images_list)
for image in images_list:
image_data = image.find('a', class_='a')
image_url = image_data.find('img')['src']
# 获取图片名称 下载图片时需要给图片文件一个文件名
image_id = image_data.find('img')['data-rootid']
# print(image_url, image_id)
print(os.path.splitext(image_url)[-1])
try:
urllib.request.urlretrieve(image_url, './古风头像/' + image_id + os.path.splitext(image_url)[-1])
print('下载成功...')
except:
pass
url = 'https://www.duitang.com/search/?kw=%E5%8F%A4%E9%A3%8E%E5%A4%B4%E5%83%8F&type=feed'
get_images(url)
效果图