Python爬虫,下载豆瓣小组图片

# -*- coding: utf-8 -*-

# -----------------------------------------------

# 程序:豆瓣小组图片爬虫

# 版本:1.0

# 语言:Python 3.4

# 作者:gdp12315

# 操作:输入豆瓣小组讨论版块地址、起始页面、终止页面

# 功能:下载小组帖子里发布的图片

# 注意:下载的保存地址为作者本机地址 读者根据自身情况更改

# -----------------------------------------------

import random

import socket

import http.cookies

import http.cookiejar

import urllib.request,re,time

ERROR = {

'0':'Can not open the url,checck you net',

'1':'Creat download dir error',

'2':'The image links is empty',

'3':'Download faild',

'4':'Build soup error,the html is empty',

'5':'Can not save the image to your disk',

}

class BrowserBase(object):

def __init__(self):

socket.setdefaulttimeout(20)

def speak(self,name,content):

print('[%s]%s', name,content)

def openurl(self,url):

"""

打开网页

"""

cookie_support= urllib.request.HTTPCookieProcessor(http.cookiejar.CookieJar())

self.opener = urllib.request.build_opener(cookie_support,urllib.request.HTTPHandler)

urllib.request.install_opener(self.opener)

user_agents = [

'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',

'Opera/9.25 (Windows NT 5.1; U; en)',

'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',

'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',

'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',

'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',

"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",

"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",

]

agent = random.choice(user_agents)

self.opener.addheaders = [("User-agent",agent),("Accept","*/*"),('Referer',url)]

try:

res = self.opener.open(url)

#print(res.read())

except Exception as e:

self.speak(str(e),url)

raise Exception

else:

return res

if __name__=='__main__':

splider=BrowserBase()

# ------------ begin ----------------------------

# 输入示例

# http://www.douban.com/group/Xsz/discussion?start=

# 1

# 2

#print('请输入豆瓣小组地址,去掉start=后面的数字')

url = str(input(u'请输入豆瓣小组地址,去掉start=后面的数字:\n'))

#url = 'http://www.douban.com/group/blabla/discussion?start='

page_bgn = int(input(u'请输入开始时的页码:\n'))

page_end = int(input(u'请输入结束时的页码:\n'))

num_end = (page_end-1)*25

num_now = (page_bgn-1)*25

while num_now <= num_end:

# 获得主题列表页面

html_topic_list = splider.openurl(url+str(num_now)).read().decode('utf-8')

# 获得主题列表

re_topic_list = re.compile(r'http://www\.douban\.com/group/topic/\d+')

topic_list = re_topic_list.findall(html_topic_list)

# 遍历每个主题 将其中图片下载下来

for topic_url in topic_list:

print('topic_url '+topic_url)

html_topic = splider.openurl(topic_url).read().decode('utf-8')

# 进入主题 获得图片下载地址列表(图片可能有多张)

re_img_list = re.compile(r'http://img\d\.douban\.com/view/group_topic/large/public/.+\.jpg')

img_list = re_img_list.findall(html_topic)

# 遍历图片下载地址列表 把每张图片保存到对应位置

for img_url in img_list:

print('img_url: '+img_url)

img_name = re.findall(r'p\d{7}',img_url)

download_img = urllib.request.urlretrieve(img_url,'D:\Python\pics\%s.jpg'%img_name)

time.sleep(2)

num_now = num_now + 25

else:

print('采集完成!')

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文:http://blog.csdn.net/gdp12315_gu/article/details/47323613

python爬豆瓣小组_Python伪装浏览器请求爬虫豆瓣小组相关推荐

  1. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  2. Python爬取、存储、分析、可视化豆瓣电影Top250

    Python爬取.存储.分析.可视化豆瓣电影Top250 网站链接: https://movie.douban.com/top250 @文章目录 前言 一.python爬取目标数据,并写入csv文件 ...

  3. python爬取网页内容_Python爬虫原理解析

    笔者公众号:技术杂学铺 笔者网站:mwhitelab.com 本文将从何为爬虫.网页结构.python代码实现等方面逐步解析网络爬虫. 1. 何为爬虫 如今互联网上存储着大量的信息. 作为普通网民,我 ...

  4. python爬去音乐_python爬去音乐

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如 ...

  5. python爬去音乐_Python爬虫——分析酷我音乐网站,并爬取歌曲-Go语言中文社区

    前言: 爬取数据,我们都先必须了解开发者工具的使用和网页的源代码,即Python导入第三方库的步骤. 开发者工具使用步骤: 使用F12或者Ctrl+Shirt+i打开开发者工具 说明: 1)先检查HT ...

  6. python爬取王者_python 爬取王者荣耀高清壁纸

    一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 预览一下桌面吧: 是不是看着这样的桌面也很带感,_ (学会这个技术,你可以爬取其他网站的类似图片 ...

  7. python爬网易云_python爬网易云音乐-知了汇智

    项目名称:python爬取网易云音乐 项目背景: 利用python爬虫,selenium自动化工具对网易云音乐进行音频爬取并保存到本地.只需输入你需要下载的歌曲名字,就可用程序对歌曲(包括付费歌曲)进 ...

  8. python爬取流浪地球_python爬取《流浪地球》获十几万评论点赞,超给力!

    原标题:python爬取<流浪地球>获十几万评论点赞,超给力! 我自己到现在其实还没看这部电影,毕竟这电影这么火,电影院现在都很难买到好的位置.所以我打算不如先看看大家是怎么评价这部电影的 ...

  9. python爬取图片实例_Python简单爬取图片实例

    都知道Python的语法很简单易上手,也很适合拿来作爬虫等等,这里就简单讲解一下爬虫入门--简单地爬取下载网站图片.html 效果 就像这样自动爬取下载图片到本地:python 代码: 其实很简单,咱 ...

最新文章

  1. go run/ go install/ go build / go get的区别
  2. 面试官问:什么是布隆过滤器?
  3. 北京招聘 | 澜舟科技招聘NLP工程师、NLP研究员、产品项目经理
  4. Exchange 2013 OWA重定向
  5. DoTween NGUI bug
  6. git解决 “fatal: Could not read from remote repository.“
  7. nacos注册中心demo
  8. NumPy 简单应用
  9. 【python】语义分割(标签)黑色(单通道)图片的读取和显示方法
  10. python中if语句的实例_如何在Python中的if语句中调用某个函数?
  11. 怎么把文件传到虚拟机里
  12. 正则表达式 RegExp【详解】
  13. Linux快速入门教程
  14. win7下 Windows Process Activation Service 服务导致的 iis无法启动的解决方法
  15. 使用 macOS 为安卓刷机
  16. Parallel使用
  17. iphone同步android短信,如何从iPhone导入短信到Android手机?
  18. BRISK算法在OpenCV3.0中的使用
  19. PAT甲级A1042 Shuaffling Machine
  20. 《架构师》被孟岩表扬,心里高兴

热门文章

  1. python课程报告论文包含代码数据_归纳与总结一:Requests的使用
  2. 安森美半导体增强CCD图像传感器的近红外性能
  3. excel表格vlookup函数怎么用_「Excel函数」vlookup函数的语法及基本应用
  4. STC8系列单片机硬件I2C使用教程(二)
  5. AWS云计算技术架构探索系列之五-网络
  6. VPS打SP2补丁的修复方法
  7. 阿里云短信使用步骤及代码模板【很遗憾现在个人无法申请短信功能了】
  8. 提问的艺术/怎么高效的提问
  9. 提高工作效率的小建议
  10. java实现三个和尚比较身高,得到最高的身高,单位:厘米(Scanner运用,三元运算符运用)