Python实现的爬取百度贴吧图片功能完整示例


Posted in Python onMay 10, 2019

本文实例讲述了Python实现的爬取百度贴吧图片功能。分享给大家供大家参考,具体如下:

#coding:utf-8
import requests
import urllib2
import urllib
```
from lxml import etree
class Tieba:
  def __init__(self):
    self.tiebaName = raw_input("请输入需要爬取的贴吧:")
    self.beginPage = int(raw_input("请输入爬取的起始页:"))
    self.endPage = int(raw_input("请输入爬取的结束页:"))
    self.baseURL = "http://tieba.baidu.com"
    #self.headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36"}
    self.headers = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1 Trident/5.0;"} def startWork(self):
    """
      发送贴吧每一页的url请求
    """
    for page in range(self.beginPage, self.endPage + 1):
      pn = (page - 1) * 50
      keyword = {"kw" : self.tiebaName, "pn" : pn}
      kw = urllib.urlencode(keyword)
      url = self.baseURL + "/f?" + kw
      #print url
      html = self.loadRequest(url)
      self.loadPage(html)
  def loadRequest(self, url):
    """
      发送请求,返回响应
      url: 发送请求的url地址
    """
    request = urllib2.Request(url, headers = self.headers)
    #request = urllib2.Request(url)
    response = urllib2.urlopen(request)
    return response.read()
  def loadPage(self, html):
    """
      提取每个帖子的url,并发送请求,获取响应
      html: 贴吧每一页的html
    """
    content = etree.HTML(html)
    print '------'
    print content
    # xpath 返回的所有匹配成功后的结果的列表
    #pagelink_list = content.xpath("//div[@class='threadlist_lz clearfix']/div/a[@class='j_th_tit']/@href")
    pagelink_list = content.xpath("//div[@class='col2_right j_threadlist_li_right']//div/a/@href")
    pagelink_list = content.xpath("//div[@class='t_con cleafix']//div/a/@href")
    for link in pagelink_list:
      print link
      self.loadImage(self.loadRequest(self.baseURL + link))
  def loadImage(self, html):
    """
      提取帖子里用户发送的图片的url地址
      html: 每个帖子的html
    """
    content = etree.HTML(html)
    imagelink_list = content.xpath("//div[@class='p_content ']//img[@class='BDE_Image']/@src")
    for link in imagelink_list:
      self.writeImage(self.loadRequest(link), link[-10:])
  def writeImage(self, data, filename):
    """
      将图片的响应数据,写入到本地磁盘里
      data: 图片的响应数据
      filename: 文件名(图片url的后10位)
    """
    print "正在保存图片...%s" % filename
    with open(filename, "wb") as f:
      f.write(data)
if __name__ == "__main__":
  tieba = Tieba()
  tieba.startWork()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中实现结构相似的函数调用方法
Mar 10 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
python使用tornado实现登录和登出
Jul 28 Python
python如何将两个txt文件内容合并
Oct 18 Python
python二维键值数组生成转json的例子
Dec 06 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
Python析构函数__del__定义原理解析
Nov 20 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 Python
详解Python为什么不用设计模式
Jun 24 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 #Python
Django框架实现分页显示内容的方法详解
May 10 #Python
Django框架验证码用法实例分析
May 10 #Python
Python爬虫实现验证码登录代码实例
May 10 #Python
详解如何管理多个Python版本和虚拟环境
May 10 #Python
不到40行代码用Python实现一个简单的推荐系统
May 10 #Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 #Python
You might like
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
Europcar比利时:租车
2019/08/26 全球购物
优秀求职信范文分享
2013/12/19 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
答谢词范文
2015/01/05 职场文书
清洁员岗位职责
2015/02/15 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python