利用BeautifulSoup爬取图片保存到本地

#开始导入我们爬取过程中要使用的包

import urllib.request

import osfrom bs4

import BeautifulSoup

def getSrc(url):

#先读取出我们要爬取的网址信息

headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36")

opener = urllib.request.build_opener()

opener.addheaders = [headers]

res = urllib.request.urlopen(url)

html = res.read()

#构建一个BeautifulSoup对象

soup = BeautifulSoup(html,'html.parser', from_encoding='utf-8')

#找出所以'img class="BDE_Image"'标签对应的值 result = soup.find_all('img',class_="BDE_Image")

links = []

for content in result: s = content['src']

    if s is None:

        continue

    else:

        links.append(s)

#输出一共找出几个符合的图片地址

print("共有"+str(len(links))+"张图片")

return links

def save(path,links=[]):

if(len(links)==0):

print('没有符合条件的图片')

return

#判断本地是否有photo这个路径,没有的话创建一个

if not os.path.exists(path):

    os.makedirs(path)

#循环把图片下载到本地photo路径下

i = 0

#for循环 循环读取我们爬取到的 图片地址列表

for link in links:

    i+=1

    filename =path+'/photo'+str(i)+'.jpg'

    with open(filename,'w'):

        urllib.request.urlretrieve(link,filename)

        print('正在下载:'+str(link))


print("图片下载完成")


def doCrew(url,path='path'):

    links=getSrc(url)

    save(path,links)

if __name__ == "__main__":

    # 这个是要爬取的网站地址

url = 'http://tieba.baidu.com/p/5698856079'

path='photo'

doCrew(url,path)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,830评论 0 17
  • 先上图,撩撩条形图的几种姿势 以上两张就是主要模仿的对象~ 柱状图&条形图 首先 question 1~这俩货有啥...
    MT同学阅读 3,418评论 0 1
  • 有人的地方,就有江湖。 在现在世事纷乱的新时代,大家抛弃了旧的儒家入仕想法,投向了资本的怀抱。 我们某师范院校,运...
    糖糖糖糖媛阅读 1,261评论 0 0
  • 一位女子去街道办事处开具证明,办公室里坐着一位肥头大耳的男子正在处理公事。 女子刚一走进办公室,那个男的就开始色迷...
    南城原创阅读 3,229评论 4 1
  • 正文 出现这个原因,除了自己手动新增ID的情况外,还有就是引用自己创建的sequance,导入新表数据后,没有将新...
    iszengmh阅读 6,218评论 0 0