斗图爬虫

2023-11-23 18:10
文章标签 爬虫 斗图

本文主要是介绍斗图爬虫,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

喜欢斗图, 图不够? 爬了一下斗图网, 自动下载图片, 斗图, 从来没怕过谁.

环境ubuntu 16.04, python3.5

直接上代码

#!/usr/bin/python
# -*- coding: utf-8 -*-import urllib
from urllib.request import urlopen
import random
import os
import remy_headers = ["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
]url_prefix = "http://www.doutula.com/article/list/?page="
referer_prefix = "http://www.doutula.com/article/list/?page="# 创建保存目录,创建成功返回Ture, 不成功返回False
def getFile(path):if not os.path.exists(path):os.makedirs(path)# 如果创建成功则返回, 不成功则尝试用默认路径创建if os.path.exists(path):print('成功创建目录 %s' % path)return Trueelse:print('创建目录 %s 失败' % path)return Falsedef getPageHTML(url, referer,  my_headers):req = urllib.request.Request(url)randdom_header = random.choice(my_headers)req.add_header("User-Agent", randdom_header)req.add_header("Host", "www.doutula.com")req.add_header("Referer", referer)req.add_header("GET", url)# opener = urllib.request.build_opener(urllib.request.ProxyHandler())# urllib.request.install_opener(opener)response = urllib.request.urlopen(req)content = response.read()return content# 解析HTML页面信息, 获取所需信息
def getHTMLElements(pageHTML):result = []print('正在获取图片列表')pattern = re.compile('data-original="(\S*?)jpg!dta', re.S)res = re.findall(pattern, pageHTML.decode('utf-8'))for r in res:r += 'jpg'result.append(r)if result:print('成功获取图片列表')return resultelse:print('获取图片列表失败')return []# 通过图片url获取图片并保存到指定文件夹中
def getImg(path, imgUrl, filename):print('正在写入图片%s' % imgUrl)u = urllib.request.urlopen(imgUrl)data = u.read()# 切换到目录os.chdir(path)f = open(filename, 'wb')f.write(data)f.close()os.chdir('../')def log(path, url, referer, my_headers, start_id):print("开始爬取%s页面" % url)# 页面HTMLpageHTML = getPageHTML(url, referer, my_headers)# 图片url列表imageUrl = getHTMLElements(pageHTML)# 保存图片# 筛除重复数据imgs = list(set(imageUrl))# 图片名称初始化# 对图片url列表进行遍历for img in imgs:# 将图片url对应的图片保存入目标文件getImg(path, img, filename=str(start_id) + '.jpg', )start_id += 1print('成功爬取%s页面, 获取%d张图片' % (url, len(imgs)))return start_id# 创建保存目录
path = "斗图"
f = getFile(path)
page_number = 2
if f:next_start_id = 1for i in range(1, page_number+1):url = url_prefix + str(i)referer = referer_prefix + str(i-1)next_start_id = log(path, url, referer, my_headers, next_start_id)print('爬虫完成, 共获取%d张图片' % (next_start_id-1))
else:print('创建目录%s失败, 停止爬虫')

结果

/opt/wwwroot/python/bin/python /opt/wwwroot/doutu.py
成功创建目录 斗图
开始爬取http://www.doutula.com/article/list/?page=1页面
正在获取图片列表
成功获取图片列表
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/22/20190422893055_FDICGk.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/19/20190419677576_mgtABy.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/19/20190419677574_yHlqZN.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/17/20190417460735_ZetOWV.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/22/20190422893056_ZNTWxH.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/19/20190419677576_fnZCtR.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/22/20190422893057_tLrIZN.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372281_EVKcFZ.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/18/20190418592845_RyTfwB.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372284_JUoZWm.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/22/20190422893054_gySZih.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372283_MhQrcu.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/17/20190417460736_mkvpPA.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/17/20190417460734_JXsBdD.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372851_XwcOSk.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372852_HQXMkq.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/19/20190419677575_ZWnGrU.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/17/20190417460735_cfWPas.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/18/20190418592850_OcIBWP.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/21/20190421861952_gENdjV.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372850_hySiUj.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372852_UbWHos.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/21/20190421861953_vOqjSn.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372282_DGUWTr.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/16/20190416372805_iDyHdU.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/18/20190418592853_btACyW.jpg
成功爬取http://www.doutula.com/article/list/?page=1页面, 获取26张图片
开始爬取http://www.doutula.com/article/list/?page=2页面
正在获取图片列表
成功获取图片列表
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/14/20190414206133_uQsHqG.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/11/20190411943483_sDBjCg.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/09/20190409770790_dNScVk.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681856_hetJiL.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681858_DJmujK.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/11/20190411943482_XLdQza.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681908_iOuyXg.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/09/20190409770790_sLTbja.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/09/20190409770792_knUdlr.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/12/20190412030067_tWBAzg.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/15/20190415303523_PbsrpF.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/10/20190410855261_FjYcIW.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681901_loACKy.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681857_TXbrzq.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/15/20190415303524_moMfct.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/11/20190411943484_FucDtC.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/14/20190414206134_WyVdgc.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681857_FMapOI.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/10/20190410855259_kKgBZS.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/12/20190412030066_OtbdXm.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/09/20190409770792_TPhezJ.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/10/20190410855260_UKQzfX.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/10/20190410855258_CTXjym.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/12/20190412030066_SxMcbA.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681902_cEAQju.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/14/20190414206132_pOBhSb.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/15/20190415303525_SzCjYs.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/14/20190414206133_VWOxBf.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/11/20190411943482_ZuwNnQ.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/08/20190408681900_eGkLNj.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/15/20190415303525_OPsDGl.jpg
正在写入图片http://img.doutula.com/production/uploads/image//2019/04/12/20190412030067_JYaPnj.jpg
成功爬取http://www.doutula.com/article/list/?page=2页面, 获取32张图片
爬虫完成, 共获取58张图片Process finished with exit code 0

转载于:https://my.oschina.net/u/3412738/blog/3041990

这篇关于斗图爬虫的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419795

相关文章

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、

Golang网络爬虫框架gocolly/colly(三)

熟悉了《Golang 网络爬虫框架gocolly/colly 一》和《Golang 网络爬虫框架gocolly/colly 二》之后就可以在网络上爬取大部分数据了。本文接下来将爬取中证指数有限公司提供的行业市盈率。(http://www.csindex.com.cn/zh-CN/downloads/industry-price-earnings-ratio) 定义数据结构体: type Zhj

014.Python爬虫系列_解析练习

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

Python 爬虫入门 - 基础数据采集

Python网络爬虫是一种强大且灵活的工具,用于从互联网上自动化地获取和处理数据。无论你是数据科学家、市场分析师,还是一个想要深入了解互联网数据的开发者,掌握网络爬虫技术都将为你打开一扇通向丰富数据资源的大门。 在本教程中,我们将从基本概念入手,逐步深入了解如何构建和优化网络爬虫,涵盖从发送请求、解析网页结构到保存数据的全过程,并讨论如何应对常见的反爬虫机制。通过本教程,你将能够构建有效的网络爬

0基础学习爬虫系列:网页内容爬取

1.背景 今天我们来实现,监控网站最新数据爬虫。 在信息爆炸的年代,能够有一个爬虫帮你,将你感兴趣的最新消息推送给你,能够帮你节约非常多时间,同时确保不会miss重要信息。 爬虫应用场景: 应用场景主要功能数据来源示例使用目的搜索引擎优化 (SEO)分析关键词密度、外部链接质量等网站元数据、链接提升网站在搜索引擎中的排名市场研究收集竞品信息、价格比较电商网站、行业报告制定更有效的市场策略舆情

0基础学习爬虫系列:程序打包部署

1.目标 将已经写好的python代码,打包独立部署或运营。 2. 环境准备 1)通义千问 :https://tongyi.aliyun.com/qianwen 2)0基础学习爬虫系列–网页内容爬取:https://blog.csdn.net/qq_36918149/article/details/141998185?spm=1001.2014.3001.5502 3. 步骤 1)不知道