# encoding: utf-8
#
#pip install requests
import requests
#pip install BeautifulSoup4
import bs4import time
import os
import sysclass Spider(object):'''爬虫下载类类变量:proxies = 代理# 例如使用ss时: proxies = {'http':'http://127.0.0.1:1080'}'''def __init__(self,proxies=None):self.proxies = proxiesself.headers = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'}def __get_all_cataurl(self,catalogue_url):'''获取初始目录中的所有目录页面的url'''__all = []respond = requests.get(catalogue_url,proxies=self.proxies,headers=self.headers)soup = bs4.BeautifulSoup(respond.text,'html.parser')dls = soup.find_all(class_='ptt')if dls is None:__all.append(catalogue_url)for dl in dls:links = dl.find_all('a')for l in links:if l.string.isdigit():__all.append(l['href'])return __alldef __get_all_pic(self,cataurl):'''获取一个目录页面中的所有图片'''print('catalogue: '+cataurl)respond = requests.get(cataurl,proxies=self.proxies,headers=self.headers)soup = bs4.BeautifulSoup(respond.text,'html.parser')# create dirdirname = os.path.dirname(__file__)+'//'+soup.title.textdirname = dirname.replace('|','')if not os.path.exists(dirname):os.makedirs(dirname)# write link-url to link.txtwith open(dirname+"//link.txt","wt+") as f:f.write(self.__cata_url)# save all picfor dls in soup.find_all(class_='gdtm'):# get pic-page-urlpicpage_url = dls.a['href']print('picpage-url: '+picpage_url)# get pic-num-idnum = picpage_url[picpage_url.rfind('-')+1:]pic_path = "%s//%s.jpg" % (dirname,num)if os.path.isfile(pic_path) == False:# download picturer = requests.get(picpage_url,proxies=self.proxies,headers=self.headers)s = bs4.BeautifulSoup(r.text,'html.parser')for dl in s.find_all('img'):if dl.get('style') is not None:print('=>'+num+'.jpg')r = requests.get(dl.get('src'),proxies=self.proxies,headers=self.headers)with open(pic_path,'wb') as f:f.write(r.content)print('download success!')else:print('the file already exists')def get_pictures(self,catalogue_url):'''传入第一个页面的目录URL(catalogue_url) 下载所有的绅士图片'''# get all cata-htmlself.__cata_url = catalogue_urlfor cataurl in self.__get_all_cataurl(catalogue_url):self.__get_all_pic(cataurl)if __name__ == '__main__':proxies = {'http':'http://127.0.0.1:1080'}#CATAURL = "http://g.e-hentai.org/g/994160/xxxxxx/"CATAURL = input("输入目录网址: ");s = Spider(proxies)s.get_pictures(CATAURL)

转载于:https://my.oschina.net/tasker/blog/812528

g.e-hentai 绅士爬虫相关推荐

  1. 7 爬虫爬取网页文章(保留图片和文本顺序,原封不动)的数据库设计,且避免重复抓取...

    1 设计思考 1.1 关于爬取文章存储的思考 第一,文章要抓取到本地: 第二,查询文件大小,如果文件过大,超出多少M,则新建一个主题文件比如:file="./"+"微信文 ...

  2. 肝了N小时,整理了100+Python爬虫项目

    提到爬虫,相信绝大部分人的第一反应就是 Python,尽管其他编程语言一样能写爬虫,但在人们的印象中,爬虫似乎与 Python 绑定了一样,由此可见爬虫在 Python 中的份量. 最近小二做了个免费 ...

  3. 【数据挖掘】3、NumPy与Pandas 清洗、爬虫、 SciKitLearn 变换、可视化

    文章目录 一.NumPy 1.1 创建数组 1.2 结构数组 1.3 连续数组 1.4 算数运算 1.5 统计函数 1.6 排序 1.7 实战 1.8 FAQ 1.8.1 axis 1.8.2 数据类 ...

  4. 肝了N小时,整理了100+Python爬虫项目(附源码)

    提到爬虫,相信绝大部分人的第一反应就是 Python,尽管其他编程语言一样能写爬虫,但在人们的印象中,爬虫似乎与 Python 绑定了一样,由此可见爬虫在 Python 中的份量. 最近我做了个免费的 ...

  5. ArcGIS|一文彻底搞懂GIS图斑编号

    实际工作中,经常会有对各类图斑进行编号的需求.数据中图斑数比较少时,我们可以手动进行编号,但数据量较大时就必须得想办法自动实现图斑编号.今天,将分享几种常见的图斑自动编号方式,主要包括:图斑顺序编号. ...

  6. APPCrawler基础教程

    一.背景 一年前,我们一直在用monkey进行Android 的稳定性测试 ,主要目的就是为了测试app 是否会产生Crash,是否会有ANR,页面错误等问题,在monkey测试过程中,实现了脱离Ca ...

  7. 文件上传之伪Ajax方式上传

    From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...

  8. 跟我斗图,我用Python爬虫下载几个G的表情砸死你

    有一个网站,叫做"斗图啦",网址是:https://www.doutula.com/.这里面包含了许许多多的有意思的斗图图片,还蛮好玩的.有时候为了斗图要跑到这个上面来找表情,实在 ...

  9. 怎么把动态图从python弄下来_发一只我一直在用的爬虫——爬取“解闷”动态图的爬虫,绅士不妨留步^=^...

    马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 疾风.意破天晴 于 2018-5-27 13:56 编辑 因为GIF这种东西似乎从诞生到 ...

最新文章

  1. python exec
  2. ServiceModel 元数据实用工具 (Svcutil.exe)
  3. Qt读取ini配置文件
  4. 游戏角色制作行业标准? 快来看看吧
  5. 外国wince学习论坛收集
  6. dj鲜生-08-用户注册的功能-上-实现注册的主逻辑和其本的验证功能-伴随着调试
  7. c语言学习-判断一个年份是否闰年
  8. power bi 创建空表_如何使用R在Power BI中创建地理地图
  9. Chapter 1 : MySQL体系结构和搜索引擎
  10. JDK1.8的lib相关jar
  11. 面向对象编程---掷骰子游戏
  12. Vue 移动端 股票 分时 K线
  13. iOS的iPhone最全尺寸、分辨率、PPI、Reader总结(包括XS、XS Max、XR)
  14. 【更新】Excel控件Spire.XLS for .NET V7.12.90发布 | 支持向工作表添加形状
  15. [国家集训队]跳跳棋
  16. kubernetes 源码安装1.18.3 (2)部署etcd集群
  17. HCIA-Big Data华为认证大数据工程师 习题册 含答案
  18. 苹果6系统怎么更新不了_苹果手机系统怎么降级
  19. mac(苹果)电脑有网,浏览器上不了网了,打开不了网页,但是微信、QQ正常使用,如何解决?
  20. vue项目引入高德地图

热门文章

  1. python爬取今日头条瀑布流_火车头采集今日头条教程,含视频教程!自行下载
  2. 微信三级分销系统有哪些内容
  3. 2022年重庆最新建筑施工焊工(建筑特种作业)模拟考试题库及答案解析
  4. git branch --set-upstream 本地关联远程分支
  5. 软件工程导论读书心得
  6. AsyncLoadLocalImage ios 加载本地高清大图
  7. cad超级排孔_家具cad排孔图 爆破排孔图
  8. 用python写一个排班脚本
  9. 安卓7.0报错android.os.FileUriExposedException
  10. shiro的remember功能