爬虫是一种快速获取服务器中数据的简便方法.它可以模拟客户端向服务器发出请求,获取服务器响应.
近期在看了博客园的一篇博客后,我自己尝试着写了一个粗略的的爬虫程序,可以实现爬取网页中的部分图片.
程序代码如下:
class SpaDer(object):
def __init__(self):
self.address = input('请输入网址:')
def operation(self):
import re
import requests
from bs4 import BeautifulSoup
import urllib.request
try:
file = urllib.request.urlopen(self.address)
html_code = file.read().decode('utf-8')
soup = BeautifulSoup(html_code, features="html.parser")
lst = soup.find_all('img')
lst1 = re.findall(r'http.{10,100}jpg', str(lst))
num = 0
for i in lst1:
with open(f'./imgs/{num}.jpg', 'wb')as f:
f.write(requests.get(i).content)
num += 1
print(f"已经下载了{num}张图片,还有{len(lst1) - num}张正在下载")
except:
pass
其业务逻辑为:
用网页下载包ullib将网页全部代码下载到本地,然后用网页解析包bs4对网页进行解析,获取网页中的所有图片标签,再用python的正则表达式包re匹配图片地址,最后用服务器请求包requests包的get方法获取
图片的二进制流数据并将其写入本地的.jpg文件中即可.