用Python爬取百度贴吧中的图片

简介: 用Python爬取百度贴吧中的图片

首先,我理解中的爬虫就是一个网页抓取工具和信息筛选工具的集合。
其中的工作原理无非就是首先获取到网页的源码,然后再通过筛选工具,将想要的信息筛选出来,这样就成了

以下为程序的源代码

__author__ = 'Liqifeng'
# -*- coding:utf-8 -*-

from urllib import request
import urllib
import re
import os

#爬取贴吧图片类
class heiheihei:
    #初始化方法
    def __init__(self,url):
        #需要爬取的网址
        self.url=url
    def getPage(self):
        #模拟浏览器信息
        user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
        header={'User-Agent':user_agent}
        #传入信息
        req = request.Request(self.url,headers=header)
        #解析页面
        response=request.urlopen(req)
        #返回一个UTF-8编码的页面字符集
        return response.read().decode('UTF-8')

    #获取帖子中所有用户的名字
    def getName(self):
        #首先通过getPage()方法获得已经解析好了的页面
        content=self.getPage()
        #编写pattern
        parrten=re.compile('<a data-field=.*?target="_blank">(.*?)</a>',re.S)
        #匹配页面中的字符集
        result=re.findall(parrten,content)
        #挨个输出
        for item in result:
            print(item)

    #获取帖子中所有图片的超链接
    def getImage(self):
        # 首先通过getPage()方法获得已经解析好了的页面
        content=self.getPage()
        #编写正则表达式
        pattern=re.compile('<img class="BDE_Image" src="(.*?)" style=.*?>')
        #挨个匹配
        result = re.findall(pattern, content)
        #命名
        name='liqifeng'
        for item in result:
            print(item)
            #调用saveImg方法将获取的图片链接挨个保存为文件
            self.saveImg(item,name+'.jpg')
            name+='1'

        #此方法为保存超链接中的图片
        #ImageUrl为图片链接,fileName为保存的文件名
    def saveImg(self,ImageUrl,fileName):
        #首先获取图片
        u=request.urlopen(ImageUrl)
        #读取图片的源代码
        data=u.read()
        #打开文件
        f=open(fileName,'wb')
        #写入数据
        f.write(data)
        f.close()
        
url='http://tieba.baidu.com/p/2125354565?pn=2'
test=heiheihei(url)
print(test.getImage())

运行结果如下

这里写图片描述

这里写图片描述

目录
相关文章
|
1月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1432 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
1月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
28 1
|
1月前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
66 0
|
3月前
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
317 1
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
129 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
16 1
|
1月前
|
编解码 UED Python
Python批量修改指定目录下图片的大小名文章
Python批量修改指定目录下图片的大小名文章
16 1
|
1月前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
|
1月前
|
数据采集 自然语言处理 Python
用 Python 生成并识别图片验证码
用 Python 生成并识别图片验证码
29 1
|
2月前
|
数据采集 开发者 Python
Python之怎么爬取图片网站
Python之怎么爬取图片网站