人生苦短

beautifulsoup的find_all用法,爬取斗图网图片

2018-11-14  本文已影响49人  dongger

弄不清楚findAll和find_all的区别。

几点收获
import requests
from urllib import request
from bs4 import BeautifulSoup
#构建目标网站链接
urls=["http://www.doutula.com/photo/list/?page={}".format(str(i)) for i in range(1,3)]
def get_srcs(url):   #获取图片链接
    src=[]
    html=requests.get(url)
    soup=BeautifulSoup(html.text,'lxml')
#以下为最关键一句
    srcs=soup.find_all('img',attrs={'class':'img-responsive lazy image_dta'})
    for i in srcs:
        src.append(i['data-original'])  #返回数组,想用yield,但是没弄明白。
    return src

def down_pic(src):   #下载图片
    root='d:/py/spider/doutuphoto/'
    if src[-3:] in ['jpg','gif']:
        request.urlretrieve(src,filename=root+src.split('/')[-1])
    else:
        pass

def main():
    for url in urls:
        for i in get_srcs(url):   #此处可加多线程
            down_pic(i)
            print (i)
if __name__=='__main__':
    main()
上一篇 下一篇

猜你喜欢

热点阅读