使用python爬虫+lxml解析+BeautifulSoup爬取图片

本人这次用的lxml解析,BeautifulSoup,requsts。

具体思路如下:

1)写一个获得源码的函数

2)写一个下载图片的函数

3)写一个获得首页上所有套图链接和名称的函数

4)写一个打开套图链接,并保存图片的函数

                       代码如下:                     

import requests,lxml,time
from bs4 import BeautifulSoup

headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}

#得到源码
def get_html(url):
    response=requests.get(url,headers)
    response.encoding='gb2312'
    html=response.text
    return html

#下载图片
def down_pic(url):
    response=requests.get(url,headers)
    return response.content

#找到所有套图的链接及名字
# url_list=[]
# text_list=[]
def get_pic_list(html):
    soup=BeautifulSoup(html,'lxml')
    try:
        pic_list=soup.find_all('li',class_='wp-item')
        for i in pic_list:
            a_tag=i.find('h3',class_='tit').find('a')
            url=a_tag.get('href')
            text=a_tag.get_text()
            # print(url,text)
            # url_list.append(url)
            # text_list.append(text)
            print('{:<50}'.format('正在下载套图:\t'+text))
            get_pic(url,text)
            print('休息5秒')
            time.sleep(5)

    except Exception as e:
        print(e)

#保存图片
def get_pic(url,text):
    html=get_html(url)
    soup=BeautifulSoup(html,'lxml')
    try:
        pic_list=soup.find('div',id='picture').find_all('img')
        # print(pic_list)
        for i in pic_list:
            # print(i)
            name=i.get('alt')
            url_=i.get('src')
            pic=down_pic(url_)
            # print('{:^25}'.format(name))
            # print('{:^25}'.format(url))
            print('{:^25}'.format('正在下载: '+name))
            with open('D:\python_script\pic\{}'.format(text+url_.split('/')[-1]),'wb') as fh:
                fh.write(pic)

    except Exception as e:
        print(e)

def main():
    url = 'http://meizitu.com/a/more_1.html'
    # print(get_html(url))
    html_ = get_html(url)
    get_pic_list(html_)

main()
                       运行结果如下:                     

正在下载套图:    

下载。。。1

下载。。。2

.。。。  
休息5秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值