栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

简单的抓图爬虫

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单的抓图爬虫

一个小小的爬虫程序
#所用到的技术点:
#1、requests 发送请求,从服务器获取到数据
#2、BeautifulSoup 解析整个页面的源代码
#以上两个都很简单,属于一上手就会,但是需要自己去下载相关的模块


import io
from os import name
import sys

from requests.api import get#利用这两个系统函数来更改print的默认输出格式,不改的话,我这里打印要报错
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')#更改print的打印格式


import requests
from bs4 import BeautifulSoup

#1、开始请求,获取服务器返回给我们的源代码
resp = requests.get("https://www.umei.cc/bizhitupian/diannaobizhi/")#获取网页的源代码

resp.encoding = 'utf-8'#看网页的编码格式是什么,我这里获取的格式是"utf-8"

#2、对拿到手的源代码进行解析,获得一个网页的页面
main_page = BeautifulSoup(resp.text, "html.parser") #第一个参数是你获取到的源代码,第二个参数是固定的(只要你是解析网页)

#3、提取出网页中的某些部分(也就是提取出一些有用的东西,你不可能连广告也去趴吧??)
#这两个重要的方法:(1)find(),表示找到第一个就返回   (2)find_all(),表示找所有
TypeList = main_page.find("div", attrs={"class":"TypeList"}).find_all("a")#第一个参数是标签的意思,第二的参数就是你标签的属性

n = 1 

for a in TypeList:

    print(f"*****下载第{n}张第图片*****")

    herf = "https://www.umei.cc"+a.get("href")#保存一下进入图片的超链接

    #我们已近拿到了子页面的超链接了,现在最重要的就是进入到超链接的页面中去,逻辑开始重复了
    child_resp = requests.get(herf)

    child_resp.encoding = 'utf-8'

    child_main_page = BeautifulSoup(child_resp.text, "html.parser")

    ##*****
    picture_path = child_main_page.find("div", attrs={"class":"ImageBody"}).find("img").get("src")

    name = child_main_page.find("div", attrs={"class":"ArticleTitle"}).find("strong").text


    f = open(f"{name}.jpg", mode="wb") #创建可写入的非文本信息的文件,也就是放图片的地方

    f.write(requests.get(picture_path).content)
    #text 返回的是unicode 型的数据,一般是在网页的header中定义的编码形式。
    #content返回的是bytes,二级制型的数据。
    #也就是说你如果想要提取文本就用text
    #但是如果你想要提取图片、文件,就要用到content

    f.close()

    n += 1

实验室讲解用,以防万一学姐要代码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269088.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号