目录
配置环境
准备工作
爬虫程序
执行程序
首页 web前端 html教程 教女朋友爬虫是一种什么样的体验_html/css_WEB-ITnose

教女朋友爬虫是一种什么样的体验_html/css_WEB-ITnose

Jun 21, 2016 am 09:00 AM

作者:Gutierrez地址:http://www.jianshu.com/p/04459ab36b56
登录后复制

我有个马上要混IT圈的女朋友,可她连大学C语言都是睡过的。我就是个操心的命,担忧她适应不了与周遭程序猿怎么交流。

虽然我一有机会便灌输编程的快乐,科技的魅力,但收效甚微。所以这次,我准备耐心给妹纸写个教程,教她爬虫,感受编程的成就感,也掌握个得瑟利器。

好勒,我们开始之前,我得确保她此时情绪稳定,因为这需要点耐心。真诚的给大家意见,如果她眉头紧锁,赶快收起笔记本本带她去吃好吃的,和谐最要紧。

配置环境

首先,我们需要台电脑,幸亏妹子有Mac,省了不少事。最适合爬虫的程序语言当属Python,Mac已经内置了Python,但我们需要补充一个爬虫需要的库requests。

电脑是个笨蛋,只能听懂计算机语言,所以我们需要把我们的想法用计算机语言告诉他,让他乖乖的执行。库是大神们已经写好的程序,我们导入库,就可以利用他们的成果了。
登录后复制

下载文件

https://bootstrap.pypa.io/get-pip.py
登录后复制

保存在根目录(打开Finder就是)下,找到终端,打开后输入下面的代码,你不需要懂这是什么意思,总之,做完之后我们就配置好了所需的环境。心中默默祈祷,愿一切顺利。

python get-pip.pypip install requests
登录后复制

准备工作

在进行爬虫之前,我们需要去需要爬虫的地方去踩踩点。我和女友都喜欢好奇心日报,那就去爬些好奇心日报的图片下来。

在chrome中打开所需爬虫的网址,在网页空白处右键单击,在弹出的菜单中选择审查元素,在弹出的底栏中就可以看到网页的源代码了,图片的地址就藏在这些乱如麻的代码中。不过,好在我们可以点击底栏左上角的放大镜,然后在选择网页中的图片就可以快速在代码中定位图片地址了。

多选择几张图片,仔细观察会发现规律,格式是一样的。

img class="pic" alt="可口可乐弧线瓶诞生 100 年了,它是如何改变了我们所处的世界? | 好奇心商业史"
登录后复制

看到这里,我们需要总结下爬虫。我们浏览的网页绝大部分是通过一种编码(HTML)将文字图片视频等内容编程一堆复杂的代码,如我们上面所见,浏览器会将这些代码解释成我们看到的样子,换言之,我们在浏览器中看到的都能在网页源码中找到。爬虫是一种通过分析网页源码获取我们信息的程序,在这里,我们利用爬虫找到网页源码中的图片并将其下载到本地。

爬虫程序

在编写代码之前,我们需要准备个代码编辑器,这里推荐微软的良心大作VS code,献上下载地址。

https://www.visualstudio.com
登录后复制

打开VScode,将其保存在我们之前所说的根目录下,保存成picdownloader.py,然后我们开始敲代码。

#-*-coding:utf8-*-import reimport requestshtml = requests.get('http://www.qdaily.com/categories/17').textpic_url = re.findall('"pic" src="(.*?)"',html,re.S)i = 0 for each in pic_url:    url = 'http://www.qdaily.com' + each    print('now downloading:' + url)    pic = requests.get(url)    fp = open('pic//' + str(i) + '.jpg','wb')    fp.write(pic.content)    fp.close()i += 1
登录后复制

下面我们一条一条说。

#-*-coding:utf8-*-的意思上字符编码是utf-8。妹子只需要知道写上这条总没错,不写有可能出错
登录后复制

import re import requests的意思上导入re 和requests库,告诉电脑,我们下面要用这两个库中的程序了。

下面这条代码的目的是获取网页的源代码,保存在html中,当然你可以换成别的网页。

html = requests.get('http://www.qdaily.com/categories/17').text
登录后复制

下面这条代码是最核心的代码,实现的功能是从上面的到的源代码中,查找所有的图片地址,将其保存在pic_url中。’”pic” src=”(.*?)”‘表示我们查找的图片地址在代码中前面是”pic” src=”,后面是”。html就是上面我们取得的源代码。

pic_url = re.findall('"pic" src="(.*?)"',html,re.S)
登录后复制

最后,我们只需要按照得到的图片地址下载图片到指定文件夹。代码稍显复杂,但别担心,下面的代码已经不重要了,因为爬虫最核心的任务我们已经完成。你可以拷贝下面的代码添加到你的代码后面,不过我还是会讲解代码的含义,但这里不懂也没关系。

for each in pic_url:中,for语句表示循环遍历pic_url,因为pic_url中保存着所有的图片地址,所以下面的代码会执行多次,每次会处理一张图片。each在下面的代码中就代表每次执行的图片地址。

url = ‘ http://www.qdaily.com ‘ + each我们得到的地址不完整,需要与好奇心日报的主页合并,python中将两个字符串合并,只需要+起来即可。

print(‘now downloading:’ + url)的功能是向终端打印括号中的内容,我们把它当作进度条,执行时观察终端窗口,也许你会恍然大悟。

pic = requests.get(url)的功能是从url图片地址下载到pic中。

最后所做的就是将下载得到的pic图片内容写到文件中,并将其保存在pic文件夹中。

fp = open('pic//' + str(i) + '.jpg','wb')fp.write(pic.content)fp.close()
登录后复制

完整的代码点此下载

http://pan.baidu.com/s/1i3LPgTB
登录后复制

执行程序

千万不要忘记在根目录新建个文件夹来保存图片,我们这里的文件夹是pic,还记得终端么,打开它,写下如下代码,回车即可

python picdownloader.py
登录后复制

到这里,我们完成图片爬虫程序,是不是很简单。女王,我已尽力,如果你没懂,看来还得我手把手教,约么?

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验? 公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验? Mar 04, 2025 pm 12:32 PM

公众号网页更新缓存,这玩意儿,说简单也简单,说复杂也够你喝一壶的。你辛辛苦苦更新了公众号文章,结果用户打开还是老版本,这滋味,谁受得了?这篇文章,咱就来扒一扒这背后的弯弯绕绕,以及如何优雅地解决这个问题。读完之后,你就能轻松应对各种缓存难题,让你的用户始终体验到最新鲜的内容。先说点基础的。网页缓存,说白了就是浏览器或者服务器为了提高访问速度,把一些静态资源(比如图片、CSS、JS)或者页面内容存储起来。下次访问时,直接从缓存里取,不用再重新下载,速度自然快。但这玩意儿,也是个双刃剑。新版本上线,

如何使用HTML5表单验证属性来验证用户输入? 如何使用HTML5表单验证属性来验证用户输入? Mar 17, 2025 pm 12:27 PM

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

HTML5中跨浏览器兼容性的最佳实践是什么? HTML5中跨浏览器兼容性的最佳实践是什么? Mar 17, 2025 pm 12:20 PM

文章讨论了确保HTML5跨浏览器兼容性的最佳实践,重点是特征检测,进行性增强和测试方法。

如何高效地在网页中为PNG图片添加描边效果? 如何高效地在网页中为PNG图片添加描边效果? Mar 04, 2025 pm 02:39 PM

本文展示了使用CSS为网页中添加有效的PNG边框。 它认为,与JavaScript或库相比,CSS提供了出色的性能,详细介绍了如何调整边界宽度,样式和颜色以获得微妙或突出的效果

< datalist>的目的是什么。 元素? < datalist>的目的是什么。 元素? Mar 21, 2025 pm 12:33 PM

本文讨论了html< datalist>元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

> gt;的目的是什么 元素? > gt;的目的是什么 元素? Mar 21, 2025 pm 12:34 PM

本文讨论了HTML< Progress>元素,其目的,样式和与< meter>元素。主要重点是使用< progress>为了完成任务和LT;仪表>对于stati

我如何使用html5< time> 元素以语义表示日期和时间? 我如何使用html5< time> 元素以语义表示日期和时间? Mar 12, 2025 pm 04:05 PM

本文解释了HTML5< time>语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

< meter>的目的是什么。 元素? < meter>的目的是什么。 元素? Mar 21, 2025 pm 12:35 PM

本文讨论了HTML< meter>元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了< meter>从< progress>和前

See all articles