本文实例讲述了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爬取贴吧所有帖子-Python实现的爬取百度贴吧图片功能完整示例相关推荐

  1. python爬取贴吧所有帖子-Python爬虫实例(一)爬取百度贴吧帖子中的图片

    程序功能说明:爬取百度贴吧帖子中的图片,用户输入贴吧名称和要爬取的起始和终止页数即可进行爬取. 思路分析: 一.指定贴吧url的获取 例如我们进入秦时明月吧,提取并分析其有效url如下 ?后面为查询字 ...

  2. python密码登录程序三次_Python实现账号密码输错三次即锁定功能简单示例

    本文实例讲述了Python实现账号密码输错三次即锁定功能.分享给大家供大家参考,具体如下: 初学Python-1 #实现账号输错三次即锁定 user = "hubery" pass ...

  3. python读取网络摄像头的帧_python实现从本地摄像头和网络摄像头截取图片功能

    python-----从本地摄像头和网络摄像头截取图片 ,具体代码如下所示: import cv2 # 获取本地摄像头 # folder_path 截取图片的存储目录 def get_img_from ...

  4. python爬取贴吧所有帖子-python爬取贴吧帖子

    一.介绍 我们常遇到一些很长的贴吧连载帖子想存到本地再看 此文就是运用python爬取指定百度贴吧的帖子并存到本地满足需求 环境:python2.7 目标网页:[长篇连载]剑网3的正史和野史--从头开 ...

  5. python爬取贴吧所有帖子-Python爬虫爬取百度贴吧的帖子

    同样是参考网上教程,编写爬取贴吧帖子的内容,同时把爬取的帖子保存到本地文档: #!/usr/bin/python #_*_coding:utf-8_*_ import urllib import ur ...

  6. python爬取贴吧所有帖子-python 爬虫爬取百度贴吧,获取海量信息

    需要用到的库:requests,re,xpath 首先打开随便一个贴吧:贴吧首页 通过观察发现每一个帖子的链接是这样的:帖子链接 我们只需要获取后面灰色部分就可以了,点击f12 按ctrl+f 找到链 ...

  7. python开发视频播放器_Python实现的视频播放器功能完整示例

    本文实例讲述了Python实现的视频播放器功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 # ----------------------- ...

  8. python制作白底界面_Python实现将蓝底照片转化为白底照片功能完整实例

    本文实例讲述了Python实现将蓝底照片转化为白底照片功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np img=cv2.imread('yay.jpg ...

  9. python爬取虎扑论坛帖子数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例
  2. 捕捉mysql中不可忽视的知识点(一)
  3. Java中break、Continue、reutrn总结
  4. 计算机二级python基础知识总结-计算机二级python 知识点篇(程序的控制结构)...
  5. 简述hdfs工作原理_hdfs工作机制和原理 简述hdfs的原理
  6. c语言编写程序平均值,编写求一组整数的和与平均值的程序
  7. 肖修鹏:十年磨一剑,成就靠谱职业经理人
  8. 10.8-全栈Java笔记:序列化/反序列化的步骤和实例
  9. PostgreSQL 逻辑订阅 - 给业务架构带来了什么希望?
  10. Flutter AnimatedSwitcher 实现优美的图片切换动画
  11. POJ3070:Fibonacci——题解
  12. java遍历嵌套二维map输出下标_Map集合嵌套 4种遍历方式
  13. Java 实现线程的两种方式
  14. react 点击使父元素消失_在 React 组件中使用 Refs 指南
  15. ExtJS 教程汇总
  16. 大学四年,自学编程常用的10个学习网站
  17. ESP-AT 应用: AT+MQTT 对接腾讯 QCloud 云
  18. python数据按照分组进行频率分布_3.2.1 分布分析
  19. 原创 基于微信小程序毕业设计题目选题课题 羽毛球篮球足球乒乓球场地球馆预约小程序的设计与实现(1)首页
  20. echart旭日图_Echarts的旭日图如何显示tooltip

热门文章

  1. P2257 YY的GCD (莫比乌斯反演)
  2. SpringMVC(二八) 重定向
  3. python(1) - 输入和输出
  4. ZH奶酪:Java调用NLPIR汉语分词系统
  5. MySQL的left on 【zt】
  6. Lua 代码编写技巧
  7. 流媒体技术学习笔记之(十八)Ubuntu 16.04.3 如何编译 FFmpeg 记录
  8. python 多进程使用总结
  9. /proc/sys/vm/ 内存参数
  10. 【Problem solved】 error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型...