爬虫学习案例3

news/2024/12/15 5:07:16/

爬取美女图片

优美图库地址
一页图片

安装依赖库文件

pip install selenium requests beautifulsoup4
python">import time
import requests
import random
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument("--headless")  # 无头模式,不打开浏览器窗口
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")# 设置ChromeDriver路径
service = Service('D:\\env\\python3\\chromedriver.exe')
url = 'https://www.umei.cc/touxiangtupian/nvshengtouxiang/'
baseUrl = "https://www.umei.cc"
# 初始化WebDriver
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.get(url)
time.sleep(random.uniform(5, 10))  # 等待页面加载
html = driver.page_source # 原页面
soup = BeautifulSoup(html, 'html.parser')
# print(soup)
# BeautifulSoup分析提取元素
divList = soup.find_all("div",class_= "item masonry_brick")
# print(divList)
# 一个美女信息
for divItem in divList:linkImage = divItem.find("div",class_ = "item_t").find("div",class_ = "img").find("a")["href"]linkImage = baseUrl + linkImage# 拿去子页面的大图driver.get(linkImage)time.sleep(random.uniform(5, 10))html = driver.page_sourcesonSoup = BeautifulSoup(html, 'html.parser')imgUrl = sonSoup.find("div",class_ = "tsmaincont-main-cont-txt").find("img")["src"]print(f"准备下载图片{imgUrl}")# 下载图片img_response = requests.get(imgUrl)img_name = imgUrl.split('/')[-1]with open("img\\"+img_name, "wb") as f:f.write(img_response.content)print(f"图片{img_name}下载完成")
print("第一页图片全部下载到当前目录了.....")
driver.quit()  # 关闭浏览器

在这里插入图片描述

爬取多页

python">import time
import requests
import random
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument("--headless")  # 无头模式,不打开浏览器窗口
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")# 设置ChromeDriver路径
service = Service('D:\\env\\python3\\chromedriver.exe')
url = 'https://www.umei.cc/touxiangtupian/nvshengtouxiang/'
baseUrl = "https://www.umei.cc"
# 初始化WebDriver
driver = webdriver.Chrome(service=service, options=chrome_options)def getImage(url,page):driver.get(url)print(f"正在爬取第{page}页图片资源源...")print(url)time.sleep(random.uniform(5, 10))  # 等待页面加载html = driver.page_source # 原页面soup = BeautifulSoup(html, 'html.parser')# BeautifulSoup分析提取元素divList = soup.find_all("div",class_= "item masonry_brick")for divItem in divList:linkImage = divItem.find("div",class_ = "item_t").find("div",class_ = "img").find("a")["href"]linkImage = baseUrl + linkImage# 拿取子页面的大图driver.get(linkImage)time.sleep(random.uniform(5, 10))html = driver.page_sourcesonSoup = BeautifulSoup(html, 'html.parser')imgUrl = sonSoup.find("div",class_ = "tsmaincont-main-cont-txt").find("img")["src"]print(f"准备下载图片{imgUrl}")# 下载图片img_response = requests.get(imgUrl)img_name = imgUrl.split('/')[-1]with open("img\\"+img_name, "wb") as f:f.write(img_response.content)print(f"图片{img_name}下载完成")print(f"第{page}页图片全部下载到当前img目录了.....")# 爬取1-10页
# 控制爬取的页面数
for page in range(1, 11):if page == 1:getImage(url,page)else:pageUrl = f"{url}index_{page}.htm"getImage(pageUrl,page)
driver.quit()  # 关闭浏览器

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/1555215.html

相关文章

前端(Axios和Promis)

Promise 语法 <script>// 创建promise对象// 此函数需要再传入两个参数,都是函数类型let pnew Promise((resolve,reject)>{if(3>2){resolve({name:"李思蕾",age:23,地址:"河南省"});}else{reject("error");}});console.log(p);p.th…

基于springboot的机器人学习交流网站系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

抓取价格数据,进行合同报价等工作已全面实现自动化

随着数字化转型的加速推进&#xff0c;企业面临的市场竞争日益激烈。为了在激烈的市场中保持竞争力&#xff0c;企业需要更快速、更高效地做出决策&#xff0c;尤其是在价格数据的抓取和合同报价环节。传统的手动操作方式不仅费时费力&#xff0c;还容易出错&#xff0c;拖慢了…

【C++】递归填充矩阵的理论解析与实现

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;问题描述&#x1f4af;递归实现&#x1f4af;参数解析函数参数详解填充顺序分析递归终止条件 &#x1f4af;示例解析第一层递归第二层递归第三层递归最终输出 &#x1f4af…

爬虫获取的数据能否用于商业分析?

根据搜索结果&#xff0c;爬虫获取的数据能否用于商业分析&#xff0c;主要取决于以下几个因素&#xff1a; 数据的合法性与合规性&#xff1a; 爬虫技术本身并不违法&#xff0c;关键在于使用的方式和目的。爬虫技术的使用必须遵守相关法律法规&#xff0c;如《反不正当竞争法…

Flume 测试 Kafka 案例

Flume Kafka 测试案例&#xff0c;Flume 的配置。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a1.sources s1 a1.channels c1 a1.sinks k1 a1.sources.s1.type netcat a1.sources.s1.bind master a1.sources.s1.port 44444 a1.channels.c1.type memory a1.sinks.k1.ty…

EasyGBS点对点穿透P2P远程访问技术在安防视频监控中的应用

随着信息技术的快速发展&#xff0c;安防视频监控系统在公共安全领域的应用变得越来越广泛。传统的视频监控系统多依赖于中心服务器进行视频流的集中处理和分发&#xff0c;这不仅增加了网络带宽的负担&#xff0c;还可能成为系统性能瓶颈。为了解决这些问题&#xff0c;P2P&am…

【前端 Uniapp】使用Vant打造Uniapp项目(避坑版)

一、基本介绍 Uniapp 是基于 Vue.js 的开发框架&#xff0c;通过一套代码可以同时发布到多个平台的应用框架。而 Vant 是针对移动端 Vue.js 的组件库。通过这样的组合&#xff0c;我们可以快速构建出一个跨平台的移动应用。Vant 已经支持多种小程序和 H5 平台&#xff0c;也对…