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中比较特别的除法运算和幂运算介绍
Apr 05 Python
python对数组进行反转的方法
May 20 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
python文件操作相关知识点总结整理
Feb 22 Python
浅谈五大Python Web框架
Mar 20 Python
python 定义给定初值或长度的list方法
Jun 23 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
python zip,lambda,map函数代码实例
Apr 04 Python
Python常用数字处理基本操作汇总
Sep 10 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 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
关于php fread()使用技巧
2010/01/22 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
php实现天干地支计算器示例
2014/03/14 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Python中用sleep()方法操作时间的教程
2015/05/22 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
python实现学生信息管理系统
2020/04/05 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python 自动批量打开网页的示例
2019/02/21 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
python内打印变量之%和f的实例
2020/02/19 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
解除劳动关系协议书2篇
2014/11/28 职场文书
刘胡兰观后感
2015/06/16 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技