前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过爬虫爬取一些图片

通过爬虫爬取一些图片

作者头像
吉师散养基地
发布2022-11-21 15:30:27
3700
发布2022-11-21 15:30:27
举报
文章被收录于专栏:我奏是太阳

​ ​

目录

目标

第一步:拿到子页面链接

总结:

爬虫的基本思路

详细思路:

如果有

如果没有


活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好的人…

本次文章全部从该网址爬取(doge)

【唯美壁纸】桌面壁纸唯美小清新_唯美手机壁纸_电脑桌面壁纸高清唯美大全 - 优美图库 (umei.cc)

目标

首先想要爬取图片,我需要在网站的首页中,找到子页面的链接(因为在首页中的图片为缩略图,不够高清doge),然后请求到子页面,。

也就是说,想要把大象。。。呸

想要下载该网站的图片(高清大图),需要三步,

第一步,在主页面中拿到每个图片的子页面链接

第二步,在子页面中找到真正的图片下载链接

第三步,下载图片

第一步:拿到子页面链接

代码语言:javascript
复制
def main_page():#定义一个函数
    with open("childPage.txt",mode="w") as f:#创建一个名为childPage.txt的文件
        for i in range(1,56):#规定爬取数量
            try:
                resp = requests.get(f"https://www.umei.cc/bizhitupian/we
imeibizhi/{i}.htm")
                # <meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
                resp.encoding = 'utf-8' # 处理中
⽂乱码, 这⾥要和⻚⾯上的charset对应
                main_page = BeautifulSoup(resp.text, "html.parser")
                typeListDiv =
                main_page.find("div", attrs={"class":"TypeList"})
                main_a_list =typeListDiv.find_all("a")
                for main_a in main_a_list:
                href = main_a.get("href") #拿到某⼀个标签中xxx属性的值
                f.write(href)
                f.write("\n")
 print(f"https://www.umei.cc/bizhitupian/weimeibizhi/{i}.htm, 成功了!")
            time.sleep(0.5)
            except:
 
 print(f"https://www.umei.cc/bizhitupian/weimeibizhi/{i}.htm, 出错了")
            print(resp.text)
            break # 也可以记录下来, 供以后查错

第二步:获取到子页面信息,找到下载图片的图片路径

代码语言:javascript
复制
def child_page():
    with open("childPage.txt", mode="r") as
f:
    for line in f:
    line = line.strip()
    resp = requests.get(line)
    resp.encoding='utf-8'
    child = BeautifulSoup(resp.text,"html.parser")
    div = child.find("div",
class_="ImageBody")
    img = div.find("img")
    if img:
        src = img.get("src")
        print(src)
    else:
        print(line, "没有图⽚")

第三步:下载图片

代码语言:javascript
复制
def download_img(src):
    with open("img/"+src.split("/")[-1],mode="wb") as f:
    resp = requests.get(src) # 下载图⽚
    f.write(resp.content) # 图⽚写⼊⽂件
    print(src, "down!")

最后运行时要把img文件设置为excluded,否则pycharm会很卡。

总结:

爬虫的基本思路

1、打开一个具体的网页

2、编写代码访问这个网页并访问数据

3、解析自己想要的数据

详细思路:

1、打开网页

2、查看网站源代码,并查找自己所需要的数据

如果有

这时候打开开发者模式,点击network。这个时候你会看到需要的数据刚好在第一个网址返回。最后编写代码爬取网页并使用xpath解析

如果没有

就打开开发者模式,点击network,刷新。这时并不能在第一个网站中就返回数据。这个时候数据是藏在其他的js等文件中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目标
  • 第一步:拿到子页面链接
  • 第二步:获取到子页面信息,找到下载图片的图片路径
  • 第三步:下载图片
  • 总结:
    • 爬虫的基本思路
      • 详细思路:
        • 如果有
          • 如果没有
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档