忍着鼻血写代码

今天写一个简单的网上爬虫,爬取一个叫妹子图的网站里面所有妹子的图片。

然后试着先爬取了三页,大概有七百多张图片吧!各个诱人的很,有兴趣的同学可以一起来爬一下,大佬级程序员勿喷,简单爬虫。

废话不多说 直接上代码

网站地址:http://www.meizitu.com/a/more_1.html

  1. from bs4 import BeautifulSoup
  2. import random,os,requests
  3.  
  4. headers = {
  5. 'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:58.0) Gecko/20100101",
  6. 'Referer': "http://i.meizitu.net"
  7. }
  8.  
  9. def home_page(num,num2,headers):
  10. list_url = []
  11. for num in range(num,num2+1):
  12. url = "http://www.meizitu.com/a/more_%d.html"%num
  13. req = requests.get(url,headers=headers)
  14. req.encoding = req.apparent_encoding
  15. html = req.text
  16. bf = BeautifulSoup(html,'lxml')
  17. targets_url = bf.find_all(class_="pic")
  18. for each in targets_url:
  19. list_url.append(each.a.get('href'))
  20. return list_url
  21.  
  22. def deal_page(headers,list_url):
  23. list_url2 = []
  24. for targets_url2 in list_url:
  25. req = requests.get(targets_url2,headers=headers)
  26. req.encoding = "utf-8"
  27. html2 = req.text
  28. bf2 = BeautifulSoup(html2,'lxml')
  29. targets_url3 = bf2.find_all(id="picture")
  30. # print(targets_url3)
  31. list_url2.append(targets_url3)
  32. return list_url2
  33.  
  34. def download(headers,list_url2):
  35. list_url3 = []
  36. # ================================
  37. print(list_url2)
  38. import re
  39. urls = re.findall(r'http.*?jpg',str(list_url2))
  40. print(urls,len(urls))
  41. for endurl in urls:
  42. filename = (endurl.split('/')[-3]) + (endurl.split('/')[-2]) +(endurl.split('/')[-1])
  43. print(endurl)
  44. print(filename)
  45. req3 = requests.get(endurl, headers=headers)
  46. root = "//Users//apple//Desktop//meizitu//"
  47. path = root + str(random.randrange(10000)) + filename
  48. if not os.path.exists(path):
  49. with open(path, 'wb') as f:
  50. f.write(req3.content)
  51. f.close()
  52. print("下载完成")
  53.  
  54. if __name__ == '__main__':
  55. num = int(input("请输入要爬取的起始页:"))
  56. num2 = int(input("请输入终止页:"))
  57. a = home_page(num,num2,headers)
  58. b = deal_page(headers, a)
  59. download(headers, b)

  

用python写一个爬虫——爬取性感小姐姐的更多相关文章

  1. Python写网络爬虫爬取腾讯新闻内容

    最近学了一段时间的Python,想写个爬虫,去网上找了找,然后参考了一下自己写了一个爬取给定页面的爬虫. Python的第三方库特别强大,提供了两个比较强大的库,一个requests, 另外一个Bea ...

  2. Python编写网页爬虫爬取oj上的代码信息

    OJ升级,代码可能会丢失. 所以要事先备份. 一開始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启示和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 p ...

  3. Python爬虫:爬取美拍小姐姐视频

    最近在写一个应用,需要收集微博上一些热门的视频,像这些小视频一般都来自秒拍,微拍,美拍和新浪视频,而且没有下载的选项,所以只能动脑想想办法了. 第一步 分析网页源码. 例如:http://video. ...

  4. python爬取快手小姐姐视频

    流程分析 一.导入需要的三方库 import re #正则表表达式文字匹配 import requests #指定url,获取网页数据 import json #转化json格式 import os ...

  5. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  6. Hello Python!用 Python 写一个抓取 CSDN 博客文章的简单爬虫

    网络上一提到 Python,总会有一些不知道是黑还是粉的人大喊着:Python 是世界上最好的语言.最近利用业余时间体验了下 Python 语言,并写了个爬虫爬取我 csdn 上关注的几个大神的博客, ...

  7. 一个简单的python爬虫,爬取知乎

    一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: # -*- cod ...

  8. 使用Python爬虫爬取网络美女图片

    代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...

  9. Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

随机推荐

  1. python关键的语法

    python关键的语法 1.标准类型分类

  2. STL---规范

    1. "插入操作" 新插入的数据位于‘哨兵迭代器“所指的节点的前方,并返回指向新插入位置的‘迭代器(指针)“.这是STL对于插入操作的标准规范. 2.链表操作 对于一个链式表,如果 ...

  3. jsTree问题

    1. 问题:刷新页面时,会自动打开刚才上次选中的节点 解决办法:去掉'state'插件 2. 关闭一个node时,使用close_all,不能修改class 注:好像用toggle_node,可以op ...

  4. 用idea简单创建web项目——两种方式

    最近同学让我教她们用idea创建web项目,于是我用两种方式创建web项目,并整理截图给她们看,一种是用maven创建,一种是不用maven创建,适合菜鸟哈哈~ 方法一:不用maven 1.解压tom ...

  5. spring mvc中的一些注释:@PathVariable @RequestParam等

    请求路径上有个id的变量值,可以通过@PathVariable来获取  @RequestMapping(value = "/page/{id}", method = Request ...

  6. Android蓝牙联机Demo解析

    写在前面: 手游的双人对战实现方式有很多,比如: 联网对战(需要一个服务器负责转发客户端请求,各种大型手游的做法) 分屏对战(手机上下分屏,典型的例子就是切水果的双人对战) 蓝牙联机对战(通过蓝牙联机 ...

  7. 设计模式总结(《Head First设计模式》学习总结)

    写在前面: 学习过程中不仅要熟练掌握技能,理论的消化吸收也必不可少.虽然个人更倾向于学习技术类的东西(短时间的精力投入很快就能看到成效...),但看了很多前辈的经验总结后才知道理论性的东西是绝对不能忽 ...

  8. vs 2015 结合新配置的IIS 发布网站过程中遇到的问题及解决办法?

    1.由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序 错误: HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添 ...

  9. C#远程桌面连接工具

    1.注册控件:regsvr32 C:\Windows\System32\mstscax.dll. 2.添加RDP Control控件到工具箱中.我选择的RDP Client Control (redi ...

  10. ASP.NET 实现多页面合并一页显示

    目前业务有一个需求: 就是把多个网页合并到一个页面显示, 在实现过程中我一般使用两种方法: 利用母版页设置导航栏, 定位到每个网页; 利用用户控件( .acsx 后缀的文件), 但是有个问题就是传参比 ...