【Python学习】一个简单的爬虫,扒取贴吧中的图片

在对爬虫进行了初步学习后,使用urllib模块编写了一个简单的爬虫,可以实现下载百度贴吧中某个帖子中出现的图片

准备工作:

首先,我们随意打开一个帖子,右键一张图片,点击审查元素(目前很多浏览器都自带该功能)
在这里插入图片描述
如上图所示,对其中关于图片的代码进行分析,编写正则表达式
我所编写的正则表达式:

img class="BDE_Image" src="https://[^"]*\.jpg"

然后我们可以再查看一下User-Agent,以便于对服务器进行简单的欺骗
在这里插入图片描述

代码:

代码比较简单,所以注释可能少了点(小声bb)

import urllib.request
import re

def url_open(url):	  		#该函数用于获取网页内容
    req = urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5603.400 QQBrowser/10.1.1775.400')	#这里可以修改User-Agent
    page = urllib.request.urlopen(req)
    html = page.read().decode('utf-8')
    
    return html

def get_jpg(html) :			#获取所有的图片地址并存放在数组中
    p = r'img class="BDE_Image" src="(https://[^"]*\.jpg)"'		#正则表达式,这里多了一对括号,因为findall方法可以只把括号中的内容存入数组中
    jpg = re.findall(p,html)
    return jpg 

def download(jpg) :
    for each in jpg :
        filename = each.split("/")[-1]
        urllib.request.urlretrieve(each,filename,None)  
    
if __name__ == '__main__' :
    url = 'https://tieba.baidu.com/p/6024068775'  #这里是帖子的地址,把想要扒的网站直接复制过来
    html = url_open(url)
    jpg = get_jpg(html)
    download(jpg)

运行结果:

在这里插入图片描述
所有的图片都保存成功啦!(图片保存的位置是代码放置的位置)
想要扒别的帖子只需要修改程序中url的值就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值