这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

今天,试着爬取了煎蛋网的图片。

用到的包:

urllib.request

os

分别使用几个函数,来控制下载的图片的页数,获取图片的网页,获取网页页数以及保存图片到本地。过程简单清晰明了

直接上源代码:

import urllib.request

import os

def url_open(url):

req = urllib.request.Request(url)

req.add_header('user-agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36')

response = urllib.request.urlopen(url)

html = response.read()

return html

def get_page(url):

html = url_open(url).decode('utf-8')

a = html.find('current-comment-page')+23

b = html.find(']',a)

return html[a:b]

def find_imgs(url):

html = url_open(url).decode('utf-8')

img_addrs = []

a = html.find('img src=')

while a != -1:

b = html.find('.jpg',a ,a+255)

if b != -1:

img_addrs.append('https:'+html[a+9:b+4]) # 'img src='为9个偏移 '.jpg'为4个偏移

else:

b = a+9

a = html.find('img src=', b)

return img_addrs

def save_imgs(folder, img_addrs):

for each in img_addrs:

filename = each.split('/')[-1]

with open(filename, 'wb') as f:

img = url_open(each)

f.write(img)

print(img_addrs)

def download_mm(folder = 'xxoo', pages = 5):

os.mkdir(folder)

os.chdir(folder)

url = 'http://jandan.net/ooxx/'

page_num = int(get_page(url))

for i in range(pages):

page_num -= i

page_url = url + 'page-'+ str(page_num) + '#comments'

img_addrs = find_imgs(page_url)

save_imgs(folder, img_addrs)

if __name__ == '__main__':

download_mm()

其中在主函数download_mm()中,将pages设置在了5面。

本来设置的是10,但是在程序执行的过程中。出现了404ERROR错误

即imgae_url出现了错误。尝试着在save_img()函数中加入了测试代码:print(img_addrs),

想到会不会是因为后面页数的图片,img_url的格式出现了改变,导致404,所以将pages改成5,

再次运行,结果没有问题,图片能正常下载:

仔细观察发现,刚好是在第五面的图片往后,出现了不可下载的问题(404)。所以在煎蛋网上,我们直接跳到第6面查看图片的url。

上图是后5面的图片url,下图是前5面的图片url

而源代码中,寻找的图片url为使用find()函数,进行定为 <.jpg>中的图片url,所以后5面出现的a href无法匹配,即出现了404 ERROR。如果想要下载后续的图片,需要重新添加一个url定位

即在find中将 img src改成 a href,偏移量也需要更改。

总结:

使用find()来定位网页标签确实太过low,所以以后在爬虫中要尽量使用正则表达式和Beautifulsoup包来提高效率,而这两项我还不是特别熟,所以需要更多的训练。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python爬虫图片实例-Python爬虫爬取煎蛋网图片代码实例相关推荐

  1. python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  2. Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  3. Python Scrapy 爬取煎蛋网妹子图实例(一)

    前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...

  4. scrapy从安装到爬取煎蛋网图片

    下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ pip install wheel pip install lxml pip install pyop ...

  5. 利用C#爬取煎蛋网图片

    本程序还有待优化,我只爬取了每个页面的第一张图片,你们可以自己更新优化代码以实现全站爬取的功能. 主要用到的命名空间有: using System; using System.Collections. ...

  6. python 爬虫爬取煎蛋网妹子图,我1T的硬盘装满了!

    前言 大家好,这里是「brucepk」爬虫 系列教程.此系列教程以实例项目为材料进行分析,从项目中学习 python 爬虫,跟着我一起学习,每天进步一点点. 煎蛋网站 image 很多朋友都反应学 p ...

  7. python爬取煎蛋网妹子图

    看了小甲鱼的python教学视频,爬取煎蛋网妹子图的代码已经不适用了,网上其它人的代码多有报错,本萌新结合其他人的方法,终于写出一个可行的,在此分享_(:з)∠)_(运行非常慢就是了) import ...

  8. 利用Selenium爬取煎蛋网妹纸图原来是这么简单!!!

    上期说到,下期更新爬取煎蛋网妹纸的selenium版本,它来了!!! 获取页面url信息 获取图片url信息 永久性保存图片 注释: 想要获取GeckoDriver安装包的小伙伴,可以给博主留言或者搜 ...

  9. selenium爬取煎蛋网

    selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...

最新文章

  1. Tomcat 的 catalina.out 日志分割
  2. 线程的常用方法——currentThread方法||在main方法中直接调用run()方法,没有开启新的线程,以在run方法中的当前线程就是main线程||启动子线程,子线程会调用run方法
  3. CSP认证201809-4 再卖菜[C++题解]:差分约束、前缀和
  4. 矽谷真假U盘测试软件,要闻回顾_科技时代_新浪网
  5. 正则提取的url中的域名以及替换域名的方法 preg_match()和preg_replace()
  6. request_irq与request_threaded_irq
  7. 仿途牛旅游APP项目开发
  8. vue.js2.0视频教程
  9. OptiCoupe 6:光学切割面板和型材切割优化[OptiCut]
  10. cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
  11. Qt -QQ音乐歌词桌面
  12. 华为android7.0 root,华为Nova 7.0 root教程 华为Nova获取7.0系统的root权限
  13. iOS循环引用问题集合、内存泄漏、僵尸对象、代码静态分析
  14. Spring Boot整合Jpa多数据源
  15. 查询python答案的app_2020知到APP大数据分析的python基础最新免费答案查询
  16. 免费https证书生成
  17. IPU VPU GPU
  18. 游戏开发人员推荐书单
  19. MacBook 安装 Docker 与 docker-compose 套装
  20. 拼多多评价过滤哪些内容?应该怎么办?

热门文章

  1. python小项目之淘宝秒杀
  2. 用python实现淘宝秒杀
  3. 【毕业设计】基于单片机的指纹识别门禁系统设计 -物联网 stm32 嵌入式
  4. xp卡在正在应用计算机设置,XP系统经常提示“应用程序正在运行”的两种解决方案...
  5. 鲁大师html5性能,安兔兔和鲁大师公布最新手机性能/流畅度排名
  6. 华为机试牛客网,C语言实现
  7. BGR到CIELab的颜色空间转换
  8. Word内的表格如何自动计算?
  9. 财务费用分析怎么分析
  10. TypeScript设计模式之策略、模板方法