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

今天,试着爬取了煎蛋网的图片。在这里顺便给大家推荐一个资源很全的python学习免废解答.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,这里有资深程序员分享以前学习心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,每天给大家讲解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零基础到项目实战的资料,每天给大家讲解python最新的技术,前景,学习需要留言的小细节

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

python爬虫爬取图片代码_Python爬虫爬取煎蛋网图片代码实战相关推荐

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

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

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

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

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

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

  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. python3网络爬虫:爬取煎蛋网美女照片

    1.1 前言 今天开学不久,课也不多,就想着来做个爬虫,看着好多老司机喜欢看美女图片,想做个爬去煎蛋网的小爬虫.哈哈,下面开车了,各位,上车记得滴卡 参考: http://blog.csdn.net/ ...

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

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

  9. python爬取煎蛋网妹子图

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

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

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

最新文章

  1. 温州大学《机器学习》课程代码(四)朴素贝叶斯
  2. linux 两个序列比对,如何用COBALT构建本地的多序列比对(Linux系统)
  3. 【CodeForces - 922B 】Magic Forest (数学,异或,暴力,水题,三元组问题)
  4. Spring使用AspectJ开发AOP
  5. iOS中XML解析 (一) TBXML (实例:打印xml内容及存储到数组)
  6. linux 7修改主机名重启后不生效_Linux 中改变主机名的 4 种方法 | Linux 中国
  7. 黑盒攻击很难?元学习提高黑盒对抗攻击成功率
  8. (72)加法器设计(全加器)
  9. 7.凤凰架构:构建可靠的大型分布式系统 --- 从类库到服务
  10. 创建云数据库 Hbase结果表
  11. redis3.2版本protected-mode参数
  12. C语言图形库函数easyx下载
  13. 飞信机器人FXRobot
  14. CSDN超实用的浏览器插件—去自家网站搜索广告、超快捷万能搜索、各种实用小功能等诸多功能等你探索
  15. 浏览器获取京东cookie教程
  16. 免费的ASP.net2.0免费空间
  17. 从事前端开发如何提升自我能力?
  18. 个人支付方案(免签约)-支付宝当面付开通教程
  19. java基础案例3-2银行存取款
  20. android nsd和udp广播,Android网络服务发现(NSD)使用

热门文章

  1. 局域网计算机不能共享常见问题
  2. [ZZ]为什么传统的自动化测试工具会扼杀敏捷?
  3. 从forEach到迭代器
  4. 各种数据库默认端口汇集
  5. oracle spfile和pfile文件(转)
  6. 性能,不是不重要,而是,它没有可维护性重要
  7. 注解(Annotation)自定义注解入门(转)
  8. MAC在命令行运行不带窗口的 Emacs -- 比窗口模式占用的资源更少一些
  9. preempt_disable宏
  10. 高通平台如何新增加一个分区,并mount到android系统中