智慧团建网站登录入口电脑版,报名系统网站开发,宝安多屏网站建设公司好吗,上海速恒网络科技有限公司文章目录 1. 安装包2. 相关代码3. 说明4. 注意事项5. 扩展功能5.1 多页面下载5.2 输入地址下载 在Python 2中编写一个爬虫来大量下载图片#xff0c;可以使用requests库来发送HTTP请求#xff0c;并使用BeautifulSoup来解析HTML页面。此外#xff0c;可以使用urllib2库来下载… 文章目录 1. 安装包2. 相关代码3. 说明4. 注意事项5. 扩展功能5.1 多页面下载5.2 输入地址下载 在Python 2中编写一个爬虫来大量下载图片可以使用requests库来发送HTTP请求并使用BeautifulSoup来解析HTML页面。此外可以使用urllib2库来下载图片。lxml 是一个 Python 库用于处理 XML 和 HTML 文档。它提供了高效的 XML/HTML 解析和生成工具是处理 Web 页面内容的常用工具之一。 1. 安装包
pip install requests
pip install beautifulsoup4
pip install lxml
pip install urllib22. 相关代码
下面是一个相关代码演示如何从一个网页中下载图片
# -*- coding: utf-8 -*-
import requests
import os
import urllib2
from lxml import etree# 创建目录函数
def create_file(file_path):# 如果目录不存在则创建目录if not os.path.exists(file_path):os.makedirs(file_path)# 下载图片函数
def download_image(url, path):try:# 使用 urllib2 打开 URL 并获取响应response urllib2.urlopen(url)# 以二进制写模式打开文件并写入响应内容with open(path, wb) as f:f.write(response.read())except Exception as e:# 如果发生异常打印错误信息print(Failed to download image: {}.format(url))print(Error: , str(e))# 从网页中抓取图片的函数
def fetch_images_from_page(url):# 使用 requests 发送 GET 请求获取网页内容resp requests.get(url)# 解析网页文本text resp.text# 使用 lxml 解析 HTML 文档html etree.HTML(text)# 通过 XPath 获取包含图片的元素列表img_list html.xpath(//div[classmod flow-ppt-mod]/div/div/img)# 初始化计数器cnt 1# 目标文件路径file_path ./ppt/# 创建目标文件夹create_file(file_path)# 遍历图片元素列表for i in img_list:try:# 尝试获取图片的 src 属性img_url i.xpath(./src)[0]except IndexError:# 如果 src 属性不存在则尝试获取 data-src 属性img_url i.xpath(./data-src)[0]# 构建图片文件名file_name %s/page_%d.jpg % (file_path, cnt)# 下载图片download_image(img_url, file_name)# 输出下载成功的提示信息print(Downloaded: {}.format(file_name))# 增加计数器cnt 1# 主函数
def main():# 目标网页 URLurl https://wenku.baidu.com/view/c784625f1a2e453610661ed9ad51f01dc3815771.html# 调用抓取图片的函数fetch_images_from_page(url)# 如果当前模块是主程序则执行 main 函数
if __name__ __main__:main()3. 说明
导入模块导入必要的模块 requests、os、urllib2 和 lxml.etree。创建目录函数create_file 用于创建指定的目录。下载图片函数download_image 用于下载图片并保存到本地。从网页中抓取图片的函数fetch_images_from_page 用于从指定网页抓取图片并下载到本地。主函数main 用于定义入口 URL 并调用抓取图片的函数。
4. 注意事项
图片URL确保图片的URL是绝对路径。如果是相对路径需要拼接成绝对路径。错误处理添加了异常处理逻辑以处理下载过程中可能出现的错误。文件路径确保保存图片的路径正确并且有写入权限。XPath 表达式使用 XPath 表达式从网页中提取图片元素。
5. 扩展功能
5.1 多页面下载
如果你需要从多个页面下载图片可以将页面的URL放入一个列表中并循环处理每个页面。
def main():# 目标URL列表urls [https://example.com/images1, https://example.com/images2]# 抓取并下载图片for url in urls:fetch_images_from_page(url)if __name__ __main__:main()5.2 输入地址下载
如果你需要输入想要的地址然后下载相对应的图片需要使用raw_inputraw_input是一个内置函数用于从标准输入通常是键盘读取一行文本并返回一个字符串。这个函数不会执行任何类型的转换返回的内容就是用户输入的原始字符串。
def main():url raw_input(输入百度文库地址)fetch_images_from_page(url)if __name__ __main__:main()