python3.7批量爬取百度贴吧的图片

1.随便打开一个百度贴吧按F12查看源代码

2. 我们找到图片所在的代码段,分析这个标题的HTML代码

正则表达式: 

<img class="BDE_Image" src="http://tiebapic.baidu.com/forum/w%3D580/sign=5e2baca502ce36d3a20483380af23a24/2739184c510fd9f9d2b40516322dd42a2934a46b.jpg" size="422124" changedsize="true" width="560" height="556">

<img class="BDE_Image" src="http://tiebapic.baidu.com/forum/w%3D580/sign=5e2baca502ce36d3a20483380af23a24/2739184c510fd9f9d2b40516322dd42a2934a46b.jpg" size="422124" changedsize="true" width="560" height="556">

提取<img>标签中的内容,同时还要指定这个class确定唯一

 3.编写爬虫脚本

import requests 
from bs4 import BeautifulSoup
import os

UrlsImage=[]  #存放所有图片的URL
def getImage(url):
    #获取网页源代码
    headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
    html = requests.get(url,headers=headers)  #用get方法发送请求,返回 response保存到变量html
    #html.encoding = 'utf-8'
    soup = BeautifulSoup(html.text, 'lxml') #用BeautifulSoup库解析网页源代码
    for a in soup.find_all('img', class_='BDE_Image'): #在网页源代码中找到所有图片地址
        UrlsImage.append(a['src']) #将每张图片的地址添加到列表中
            
def saveImage():
    b=os.getcwd()       #获取当前目录
    os.makedirs(b+'\\'+imageFolder)     #在当前目录下创建文件夹
    c=b+'\\'+imageFolder+'\\'        #获取创建好之后的文件夹目录
    for a,eve_url in enumerate(UrlsImage):
        pic = requests.get(eve_url).content #因为图片是以二进制存储的,所以这些要用 content
        with open(c+eve_url.split('/')[-1] + '.jpg', 'wb') as f: #将图片保存到文件根目录
            f.write(pic) #写入图片
def main():
    for a in range(3):
        try:
            getImage(imageURL + str(a))
        except:
            pass
    saveImage()

if __name__ == '__main__':
    imageURL = input("输入图片地址(多页下载请删除当前页码):")
    imageFolder=input("请输入 文件夹名称:")
    pagination=input("请输入 页码数:")
    main()

 4.输入爬取的百度贴吧的URL:

5.爬取完成

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sam-zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值