- 一、分析页面
- 二、爬取的关键步骤
- 2.1 初步信息获取
- 2.2 查找抓取信息
- 2.3 抓取新页面
- 2.4 获取新页面的图片真正的下载地址
- 2.5 遍历所有新页面的抓取信息,获取图片的SRC属性
- 三、完整代码
- 四、总结
网页链接:https://www.umei.cc/bizhitupian/fengjingbizhi/index.htm
通过分析得出:
1、图片的下载地址在新的页面(newpage_url)img标签的src属性里面
2、由于BeautiSoup就是借助网页的结构和属性等特性来解析网页的,因此使用BeautifulSoup更快更高效。
请求方式:GET
实际请求地址:https://www.umei.cc/bizhitupian/fengjingbizhi/index.htm
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36
请求参数:无
soup = BeautifulSoup(res.text,"html.parser")
a_list = soup.find("div",class_="TypeList").find_all("a")
2.3 抓取新页面
拼接新打开页面地址:item_url = “https://www.umei.cc” + item[‘href’]
item_res = requests.get(item_url) item_res.encoding='utf-8' item_soup = BeautifulSoup(item_res.text,'html.parser')2.4 获取新页面的图片真正的下载地址
p_list = item_soup.find('div',class_='ImageBody').find_all('p',align="center")
2.5 遍历所有新页面的抓取信息,获取图片的SRC属性
for img_list in p_list:
img_src = img_list.find("img")["src"]
三、完整代码
import requests
from bs4 import BeautifulSoup
import time
import random
url = "https://www.umei.cc/bizhitupian/fengjingbizhi/index.htm"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
}
res = requests.get(url, headers=headers)
res.encoding = "utf-8"
# bs对象
soup = BeautifulSoup(res.text, "html.parser")
div = soup.find("div", class_="TypeList")
a_list = soup.find("div", class_="TypeList").find_all("a")
for item in a_list:
# img里面的地址是资源地址
# 新网页的地址
newpage_url = "https://www.umei.cc" + item['href']
# 访问newpage_url
newpage_res = requests.get(newpage_url)
# 构建bs对象
newpage_soup = BeautifulSoup(newpage_res.text, "html.parser")
# 图片的下载地址在p标签的img标签的src属性里面里
img_src = newpage_soup.find("p", align="center").find("img")['src']
img_name = img_src.split("/")[-1]
img_res = requests.get(img_src)
with open("img/"+img_name, mode="wb") as f:
f.write(img_res.content)
print(img_name+"is complete!")
# 降低服务器负担
time.sleep(1+random.random())
爬取的30张图片~
第一,这里只抓取了一页的图片,可以通过构建抓取页面地址列表,封装抓取函数爬取多页图片。第二,设置文件夹属性为Excluded,避免每次下载图片时python自动为图片建立索引,提高程序性能。
写blogs就像复盘一样,哈哈!下一个案例写爬取北京新发地菜价,记录一下成长足迹还是很不错滴~
Take a few minutes to appreciate what you have and how far you’ve come~



