# 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. Java中使用序列化实现深拷贝
  2. SAP RETAIL 特性树(Characteristic Tree)的定义
  3. Python网络编程1--笔记
  4. [Google App Engine] Hello, world!
  5. python怎么导入文件-Python 导入文件过程图解
  6. msm8953之串口dts配置
  7. 一款针对Outlook的红队安全研究工具
  8. jQuery判断checkbox是否选中的3种方法
  9. 验证规则构建神器 FluentValidation.md
  10. C#网络类智能开关控制板实例
  11. 【M1芯片兼容】office 2021 Mac正式版最新更新
  12. 一周完成的小项目-某银行短信发送
  13. Oracle 11g新特性密码大小写敏感问题
  14. 自我监督学习和无监督学习_弱和自我监督的学习-第2部分
  15. Strusts2笔记6--拦截器
  16. b、B、kb、kB单位
  17. php silk文件转换mp3,微信小程序silk录音文件转mp3
  18. 从了解Linux开始
  19. oracle 删除asm,删除ASM实例
  20. 【张飞实战电子】硬件设计与开发第1部:线性稳压电源的设计 笔记

热门文章

  1. 2022-2027年中国公共图书馆资源行业发展监测及投资战略研究报告
  2. 高德地图聚合android,GitHub - lingyanluoxue/android-togetherMap: 实现高德地图的marker聚合功能...
  3. SQL Server新建维护计划
  4. 中健长生露祝贺中国奥运健儿东京凯旋
  5. 每天睁开眼,开源众包就欠你60万!
  6. 2017黑加传智java_传智黑马 Java在职加薪课 学成在线
  7. Yunzai-Bot v3—Linux服务器搭建教程
  8. php文章段落,php – 段落功能的新行
  9. matlab 克里金插值,克里金插值(arcgis克里金插值步骤)
  10. 如何通过一张照片来获取ip地址?