不可错过的爬虫实例(一):教你爬取优美图库

一.前言

前几天有小伙伴私信我说能不能用爬虫爬取美女图片,那必须能啊,本次就用爬虫知识爬取你们想要的(懂得都懂),话不多说,正题开始!

二.准备工作

1.所用模块

  • requests
  • BeautifulSoup
  • ThreadPoolExecutor
  • 2.网页分析

    示例网站:https://www.umei.net/katongdongman/dongmantupian/
    不可错过的爬虫实例(一):教你爬取优美图库

    说明:由于美女图有点暴露,csdn会过滤掉,有兴趣的可仿照自行爬取

    2.1网页源代码分析!

    不可错过的爬虫实例(一):教你爬取优美图库

    通过分析容易发现图片的超链接(图中红色框内href属性值)藏在何处,通过BeautifulSoup模块解析网页可以拿到超清大图超链接

    注意注意!!

    有小伙伴会说,上图中不是有图片的路径吗,直接保存不行吗?请看下图:
    不可错过的爬虫实例(一):教你爬取优美图库
    这个图也太小了!!!怎么获取超清大图?再次解析,请看下图:
    不可错过的爬虫实例(一):教你爬取优美图库

    2.2对拿到的超链接进行再次解析(获取超清大图)

    不可错过的爬虫实例(一):教你爬取优美图库

    三.代码及成果展示

    import requests
    from bs4 import BeautifulSoup
    from concurrent.futures import ThreadPoolExecutor
    
    url = "https://www.umei.net/p/gaoqing/cn/"
    headers = {
        "user-agent": "chrom/10"
    }
    r = requests.get(url=url, headers=headers, timeout=300)
    r.encoding = "utf-8"
    demo = r.text
    soup = BeautifulSoup(demo, "html.parser")
    list = soup.find("div", attrs={"class": "TypeList"}).find_all("a", attrs={"class": "TypeBigPics"})
    def getImg():
        n=1
        for item in list:
            href=item.get("href")
            href=url.split("/p")[0]+href
            r=requests.get(url=href,headers=headers,timeout=300).text
            soup=BeautifulSoup(r,"html.parser")
            src=soup.find("div",attrs={"class","ImageBody"}).find("img").get("src")
            content=requests.get(src).content
            f=open(f"{n}.jpg","wb")
            f.write(content)
            print(f"第{n}张爬取成功")
            n+=1
    if __name__=='__main__':
        with ThreadPoolExecutor(50) as t:
            t.submit(getImg())
    

    不可错过的爬虫实例(一):教你爬取优美图库

    你只需要把初始链接改一下就可以想爬啥就爬啥哦

    四. 结语

    文章允许白嫖,代码允许白嫖,但是可以点赞评论吗,谢谢各位小伙伴啦。就到这里了,我们下期再见,记得订阅专栏哦!!

上一篇:#20192315 2020-2021-2 《Python程序设计》实验四报告


下一篇:hdu 4597 + uva 10891(一类区间dp)