作者: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
到这里,我们完成图片爬虫程序,是不是很简单。女王,我已尽力,如果你没懂,看来还得我手把手教,约么?

公眾號網頁更新緩存,這玩意兒,說簡單也簡單,說複雜也夠你喝一壺的。你辛辛苦苦更新了公眾號文章,結果用戶打開還是老版本,這滋味,誰受得了?這篇文章,咱就來扒一扒這背後的彎彎繞繞,以及如何優雅地解決這個問題。讀完之後,你就能輕鬆應對各種緩存難題,讓你的用戶始終體驗到最新鮮的內容。先說點基礎的。網頁緩存,說白了就是瀏覽器或者服務器為了提高訪問速度,把一些靜態資源(比如圖片、CSS、JS)或者頁面內容存儲起來。下次訪問時,直接從緩存裡取,不用再重新下載,速度自然快。但這玩意兒,也是個雙刃劍。新版本上線,

本文討論了使用HTML5表單驗證屬性,例如必需的,圖案,最小,最大和長度限制,以直接在瀏覽器中驗證用戶輸入。

本文展示了使用CSS為網頁中添加有效的PNG邊框。 它認為,與JavaScript或庫相比,CSS提供了出色的性能,詳細介紹瞭如何調整邊界寬度,樣式和顏色以獲得微妙或突出的效果

本文討論了html< datalist>元素,通過提供自動完整建議,改善用戶體驗並減少錯誤來增強表格。Character計數:159

本文討論了HTML< meter>元素,用於在一個範圍內顯示標量或分數值及其在Web開發中的常見應用。它區分了< meter>從< progress>和前

本文解釋了HTML5< time>語義日期/時間表示的元素。 它強調了DateTime屬性對機器可讀性(ISO 8601格式)的重要性,並在人類可讀文本旁邊,增強Accessibilit

本文討論了HTML< Progress>元素,其目的,樣式和與< meter>元素。主要重點是使用< progress>為了完成任務和LT;儀表>對於stati


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版