Python爬虫爬取百度贴吧的图片

根据输入的贴吧地址,爬取想要该贴吧的图片,保存到本地文件夹,仅供参考:

#!/usr/bin/python
#_*_coding:utf-8_*_
import urllib
import urllib2
import re
import os
import sys

reload(sys)
sys.setdefaultencoding("utf-8")
#下载图片
class GetPic:
#页面初始化
def __init__(self,baseUrl,seelz):
#base链接地址
self.baseURL = baseUrl
#是否只看楼主
self.seeLZ = ‘?seelz=‘ + str(seelz)
#self.tool = tool.Tool()

#获取页面内容
def getPage(self,page):
try:
url = self.baseURL + self.seeLZ + ‘&pn=‘ + str(page)
request = urllib2.Request(url)
response = urllib2.urlopen(request)
html = response.read().decode(‘utf-8‘)
#print html
return html
#链接报错的原因
except urllib2.URLError, e:
if hasattr(e,"reason"):
print u‘链接百度贴吧失败,错误原因:‘,e.reason
return None

#获取帖子一共有多少页
def getPageNum(self,page):
page = self.getPage(1)
pattern = re.compile(‘<li class="l_reply_num.*?</span>.*?<span.*?>(.*?)</span>‘,re.S)
result = re.search(pattern,page)
if result:
#输出页码数
#print result.group(1)
pagenum = result.group(1).strip()
#print result.group(1)
return pagenum
else:
print None

#获取页面的图片
def getPic(self,page):
html = self.getPage(page)
#正则匹配图片的地址
reg = r‘<img class="BDE_Image".*?src="(.*?)".*?>‘
pattern = re.compile(reg)
items = re.findall(pattern,html)
return items

def savePic(self,page):
#pageNum = self.getPageNum(1)
items = self.getPic(page)

x = 0
for item in items:
print item
#根据实际保存图片的地址进行修改
urllib.urlretrieve(item,‘D:\learn\python-bqb\%s-%s.jpg‘ % (page,x))
x += 1

def Start(self):
#indexPage = self.getPage(1)
pageNum = self.getPageNum(1)
if pageNum == None:
print "URL已失效,请重试"
return
try:
print "该帖子共有" + str(pageNum) + "页"
for i in range(1,int(pageNum) + 1):
print "正在写入第" + str(i) + "页数据"
#self.getPage(i)
#self.getPic(i)
self.savePic(i)

except IOError,e:
print "写入异常,原因" + e.message
finally:
print "写入任务完成"

print u"请输入帖子的代号"

baseURL = ‘http://tieba.baidu.com/p/‘ + str(raw_input(u‘http://tieba.baidu.com/p/‘))
seeLZ = raw_input("是否只获取楼主发表的图片,是输入1,否输入0\n")
bdtp = GetPic(baseURL,seeLZ)
bdtp.Start()

‘‘‘
#创建目录保存图片
def mkdir(self,path):
path = path.strip()
#判断路径是否存在
#存在 返回True
#不存在 返回False
isExists = os.path.exists(path)
#判断结果
if not isExists:
#如果不存在则创建目录
print u"新创建了目录名为:" + path
#创建目录操作函数
os.makedirs(path)
return True
else:
#如果目录已存在不创建,提示目录已存在
print u"目录" + path + "已存在"
return False

#保存图片
def savePic(html,items):
x = 0
for item in items:
filename = item + ‘.jpg‘
while open(filename,‘wb‘) as fp:
img = getPic(html)
fp.write(img)
‘‘‘

时间: 2024-10-11 20:15:26

Python爬虫爬取百度贴吧的图片的相关文章

python爬虫—爬取百度百科数据

爬虫框架:开发平台 centos6.7 根据慕课网爬虫教程编写代码 片区百度百科url,标题,内容 分为4个模块:html_downloader.py 下载器 html_outputer.py 爬取数据生成html模块 html_parser 获取有用数据 url_manager url管理器 spider_main 爬虫启动代码 spider_main.py 1 #!/usr/bin/python 2 #-*- coding: utf8 -*- 3 4 import html_download

Python爬虫爬取百度贴吧的帖子

同样是参考网上教程,编写爬取贴吧帖子的内容,同时把爬取的帖子保存到本地文档: #!/usr/bin/python#_*_coding:utf-8_*_import urllibimport urllib2import reimport sys reload(sys)sys.setdefaultencoding("utf-8")#处理页面标签,去除图片.超链接.换行符等class Tool: #去除img标签,7位长空格 removeImg = re.compile('<img.*

Python爬虫-爬取百度贴吧帖子

这次主要学习了替换各种标签,规范格式的方法.依然参考博主崔庆才的博客. 1.获取url 某一帖子:https://tieba.baidu.com/p/3138733512?see_lz=1&pn=1 其中https://tieba.baidu.com/p/3138733512?为基础部分,剩余的为参数部分. http://  代表资源传输使用http协议 tieba.baidu.com 是百度的二级域名,指向百度贴吧的服务器. /p/3138733512 是服务器某个资源,即这个帖子的地址定位符

用python爬虫爬取百度外卖店铺排名

#!/usr/bin/env python # encoding: utf-8 """ @version: ?? @author: phpergao @license: Apache Licence  @file: baidu_paiming.py @time: 2016/8/1 11:10 """ import requests,re,urllib,codeop,urllib.request,nturl2path,macurl2path url

python --爬虫--爬取百度翻译

import requestsimport json class baidufanyi: def __init__(self, trans_str): self.lang_detect_url = 'https://fanyi.baidu.com/langdetect' # 语言检测地址 self.trans_str = trans_str self.headers= {'User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA5

python爬虫爬取csdn博客专家所有博客内容

python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 结果如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.

python爬虫爬取美女图片

python 爬虫爬取美女图片 #coding=utf-8 import urllib import re import os import time import threading def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImgUrl(html,src): srcre = re.compile(src) srclist = re.findall(srcre,html)

Python爬虫爬取博客园并保存

Python爬虫爬取博客园并保存        爬取博客园指定用户的文章修饰后全部保存到本地 首先定义爬取的模块文件: crawlers_main.py 执行入口 url_manager.py url管理器 download_manager.py 下载模块 parser_manager.py html解析器(解析html需要利用的内容) output_manager.py 输出html网页全部内容文件(包括css,png,js等) crawlers_main.py 执行入口 1 # coding

用Python爬虫爬取广州大学教务系统的成绩(内网访问)

用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code] 在{}之前的部分就是"选择器"."选择器"指明了{}中的"样式"的作用对象,也就是"样式"作用于网页中的哪些元素.可参考:http://www.w3school.com.cn/cssref/css_selectors.asph