美文网首页
利用requests和bs4爬贴吧的图片

利用requests和bs4爬贴吧的图片

作者: LiangJialin | 来源:发表于2018-07-03 12:23 被阅读22次

    我准备爬ps吧里的第一页的每一个帖子的图片,先找到第一页里指向每一个帖子的地址

    可以发现,每一个帖子的都是/p/5775030343形式的,点进去就可以发现它的实际网址http://tieba.baidu.com/p/5775030343,所以,在获取首页看到的地址后,加上http://tieba.baidu.com,就可以组成每一个帖子的网址了

    进入其中一个帖子后,可以发现,帖子里的图片都在<img class = 'BDE_Image'...>标签里,获取里面的具体图片网址后,就可以直接下载了

    具体实现如下:

    需要用到的库

    pip install requests

    pip install BeautifulSoup

    导入需要用到的库

    import requestsfrom bs4

    import BeautifulSoup

    import os

    首先,获取需要的链接地址 http://tieba.baidu.com/f?ie=utf-8&kw=ps

    #获取html

    f = requests.get('http://tieba.baidu.com/f?ie=utf-8&kw=ps').text

    #用BS解析html

    s = BeautifulSoup(f,'lxml')

    #获取每一个帖子的链接

    pages = s.find_all('a',{'class':'j_th_tit'})

    #新建目录

    if os.path.exists('c:/photo') == True:

        print("-----directory exicts!-----") else:

        os.mkdir('c:/photo') os.chdir('c:/photo')

    #准备下载

    print("-----prepare to dowmload!-----")

    i=1

    #存放每一页

    pages_url = []

    for page in pages:

        page_url = 'http://tieba.baidu.com'+page['href']

        pages_url.append(page_url)

    #获取每一个帖子内的图片地址

    for each_url in pages_url:

        con = requests.get(each_url).text

        cons = BeautifulSoup(con,'lxml')

        imgs = cons.find_all('img',{'class':'BDE_Image'})

        for src_url in imgs:

            real_url = src_url['src']

            img_content = requests.get(real_url).content

            file_name = str(i) + '.jpg'

    #开始下载图片

            with open(file_name, 'wb') as wf:

                wf.write(img_content)

        print("downloading",i, "photo")

        i += 1

        print("---download completely!---")

    效果如下:

    开始下载 下载完成 总共下载了326张图片 总共下载了326张图片

    相关文章

      网友评论

          本文标题:利用requests和bs4爬贴吧的图片

          本文链接:https://www.haomeiwen.com/subject/xkixuftx.html