简单的爬虫:爬取网站内容正文与图片

我们来写个简单的爬虫####

需要用到的模块

需要用到python的urllib和lxml模块,urllib为python的自带模块,lxml需要自行安装:

pip install lxml

简单介绍urllib和lxml的使用

我们使用urllib来爬去一个网页比如:

In [1]: import urllib

In [2]: # 爬起豆瓣首页

In [3]: html = urllib.urlopen("https://www.douban.com/").read()

In [4]: # 整个html打印出来太多,这里我们就保存在文件中,再查看

In [5]: of = open("db_index.html","w")

In [6]: of.write(html)

In [7]: of.close()

使用lxml主要用于解析网页(这里只是简单示范),比如:

In [8]: from lxml import etree

In [9]: html = u'<div class="test1"><h1>我是标题</h><p>哈哈哈哈</p></div></html>'
In [10]: # 我们如何获取class为test1的div标签中的文字呢?

In [11]: selector = etree.HTML(html)

In [12]: text = selector.xpath("//div[@class='test1']//text()")

In [13]: print text
[u'\u6211\u662f\u6807\u9898', u'\u54c8\u54c8\u54c8\u54c8']

In [14]: # 很明显是个list

In [15]: for t in text:
    ...:     print t
    ...:     
我是标题
哈哈哈哈

In [16]: # 当然也可以单独获取标题

In [17]: text = selector.xpath("//div[@class='test1']/h1/text()")

In [18]: print text[0]
我是标题

爬取“下厨房”网站的教程

因为网站中同一类型的页面的html代码结构都一样,所以我们只需要写一套解析代码就能用在它所有的同类型的页面中。
我们爬取下厨房的教程的内容页面,代码如下:

#!/usr/bin/env python
#-*-coding:utf-8-*-
import urllibfrom lxml 
import etree
# 获取网页html,拿"下厨房"这个网站来示例
html = urllib.urlopen("http://www.xiachufang.com/recipe/102272250/").read()
selector = etree.HTML(html)
'''
一个网站中相同类型的页面的结构基本都是一样的,
所以我们下面写得适合这个网站所有的同类型页面
'''
# 获取内容标题
title = selector.xpath('//title/text()')[0]
print("标题: {}".format(title))
# 获取作者昵称
author= selector.xpath("//div[@class='author']//span/text()")[0]
print("作者: {}".format(author))
# 作者头像链接
portraits_url = selector.xpath("//div[@class='author']//img/@src")[0]
print("头像链接:{}".format(portraits_url))
# 保存头像# 保存在当前目录
imgname = "portraits_{}".format(portraits_url.split("?")[0].split("/")[-1])
urllib.urlretrieve(portraits_url, filename=imgname)
# 获取正文:作者的前言
contents1 = selector.xpath("//div[@class='desc mt30']/text()")
for c in contents1:
    print c
# 获取正文:教程用料
contents2 = selector.xpath("//div[@class='ings']/text()")
for c in contents2:
    print c
# 获取步骤正文中的每一步的<p>代码块
contents3 = selector.xpath("//div[@class='steps']//p[@class='text']/text()")
# 获取步骤正文中的全部图片
imgurls = selector.xpath("//div[@class='steps']//img/@src")
for c in contents3:
    # 获取每一步骤的文字并打印   
    print c
l = len(imgurls)
for i in range(0, l):
    print imgurls[i]
# 保存图片:   
# 保存在当前目录   
imgname = "img{}_{}.jpg".format(i, title)
urllib.urlretrieve(imgurls[i], filename=imgname)

运行看下:

(venv) allenwoo@~/renren/code$ python crawl.py 
标题: 【设计师的品质早餐——能量爆炸三明治的做法】设计师的品质早餐——能量爆炸三明治怎么做_设计师的品质早餐——能量爆炸三明治的家常做法_下厨房
作者: 细嗅蔷薇natalie
头像链接:http://s2.cdn.xiachufang.com/2ced0090ebfa11e594d1b82a72e00100.jpg?imageView2/1/w/60/h/60/interlace/1/q/90

        我是一个时装设计师,追求品质不仅体现在服装上,也体现在美食中。百吉福芝士片就是三明治的灵魂,让普通的吐司,肉类和蔬菜也瞬间有范起来。
这款能量爆炸的三明治作为上班族的外带午餐也是非常好的选择,到了下班都不会饿哦!要做到“爆炸”的效果,那应该尽量塞进更多的食材。需要一张保鲜膜来包紧食材不外漏。因为放的食材多,也要有沙拉酱花生酱这种酱料一个调味第二个起粘合作用,也可以用薯泥,牛油果泥等等又好吃又可以起到粘合作用。
        
所有食材准备好。
吐司上面抹上低脂沙拉酱。
不喜欢吃边的就切掉,我没切。
放上生菜叶子压一下,再放一片百吉福香浓原味芝士片。
烤鸡胸切成厚片,如果你想纵向切开就横向摆放,这样切开的横截面比较好看。然后尽量中间堆的厚一点,四边薄。
牛油果捣成泥作为粘合剂。
放上番茄片。
按住吐司的边边把保鲜膜尽量的包紧,要用点巧劲儿啦
用一把锋利的刀干脆利落切成两半。
包上油纸美化一下,享用吧!
http://s2.cdn.xiachufang.com/74c5590a27d411e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/74e5229e27d411e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/6c52939427cc11e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/6d72d51827cc11e7bc9d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/6d3c711c27cc11e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s1.cdn.xiachufang.com/5b64d93e27cc11e7bc9d0242ac110002_5616w_3744h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s2.cdn.xiachufang.com/705e7f8e27cc11e7bc9d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/c4fa4fda27ce11e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90

看看下载的图片:

Paste_Image.png

我们换一个下厨房的同类型网页再试试:

比如:早餐卷教程页面,
http://www.xiachufang.com/recipe/268278/

(venv) allenwoo@~/renren/code$ python crawl.py 
标题: 【早餐卷的做法】早餐卷怎么做_早餐卷的家常做法_下厨房
作者: 虎妈尚菜
头像链接:http://s2.cdn.xiachufang.com/13d504e3811b11e582e621381ef80f49.jpg?imageView2/1/w/60/h/60/interlace/1/q/90

        胡萝卜丝土豆丝海带丝豆腐衣鸡蛋,一起卷入饼中,做早餐内容够丰厚营养够全乎热量还不高,其实做法还是简单至极的。头天晚上将各类菜焯烫至熟,不是炒熟,煮的稍软的都,清新的味道跟炒完全不同。第二天早起在卷饼上贴个热乎的鸡蛋,刷上自己喜欢的甜酱或者辣酱,再卷上提前腌制好的杂菜,3分钟足够的事儿,营养全面又可口的鸡蛋饼就做好了,口感香嫩软,很好吃。
      
将220克滚开的水倒入加了盐面粉中,用筷子搅拌均匀后再加入冷水30克拌匀
把面揉成光滑的面团,10分钟左右
拿出后等量分割成10个小剂子
将面剂子擀成圆形薄片
放入电饼铛,盖上盖子半分钟
然后掀起翻个面再继续盖半分钟即可
胡萝卜跟土豆洗净后切细丝。豆腐衣要焯烫后再切丝
将胡萝卜丝、土豆丝、海带丝、豆腐衣,分别用清水焯烫至熟
捞出后将所有杂菜混在一起,加入生抽、芝麻油拌匀,然后存冰箱,腌制入味,随用随取
转天一早,先预热电饼铛,然后再切点葱花放入磕了鸡蛋的碗中,并打散
将一张卷饼放入电饼铛,倒上葱花蛋液,鸡蛋凝固即可取出
在蛋饼上抹上拌饭酱
再铺上杂菜
卷起即可,趁热食用
胡萝卜跟土豆洗净后切细丝。豆腐衣要焯烫后再切丝
将胡萝卜丝、土豆丝、海带丝、豆腐衣,分别用清水焯烫至熟。各类菜是清水焯烫,千万不要用油炒,口感不同的
捞出后将所有杂菜混在一起,加入生抽、芝麻油拌匀,然后存冰箱,腌制入味,随用随取
转天一早,先预热电饼铛,然后再切点葱花放入磕了鸡蛋的碗中,并打散
将一张卷饼放入电饼铛,倒上葱花蛋液,鸡蛋凝固即可取出
在蛋饼上抹上拌饭酱
再铺上杂菜
卷起即可,趁热食用
http://s1.cdn.xiachufang.com/d842a8ac945411e6a9a10242ac110002_216w_330h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s2.cdn.xiachufang.com/d81316fa945411e6a9a10242ac110002_220w_324h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s1.cdn.xiachufang.com/d7efa6f2945411e6b87c0242ac110003_212w_322h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s2.cdn.xiachufang.com/d7c617c4945411e6a9a10242ac110002_214w_323h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d79e01c6945411e6a9a10242ac110002_217w_323h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d772b78c945411e6b87c0242ac110003_220w_330h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d743d566945411e6a9a10242ac110002_222w_323h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s1.cdn.xiachufang.com/d70f24ec945411e6a9a10242ac110002_215w_324h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s2.cdn.xiachufang.com/d6bf2550945411e6b87c0242ac110003_215w_326h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d682ed1a945411e6a9a10242ac110002_220w_323h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d656fe26945411e6a9a10242ac110002_217w_322h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d6245f20945411e6b87c0242ac110003_219w_329h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d5c232c8945411e6b87c0242ac110003_218w_327h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s1.cdn.xiachufang.com/d58c985c945411e6a9a10242ac110002_219w_331h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s1.cdn.xiachufang.com/d51f27e0945411e6a9a10242ac110002_219w_323h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s1.cdn.xiachufang.com/d4e25bc6945411e6b87c0242ac110003_216w_326h.jpg@2o_50sh_1pr_1l_300w_90q_1wh
http://s2.cdn.xiachufang.com/d4a94cfa945411e6a9a10242ac110002_219w_331h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d47030f0945411e6a9a10242ac110002_222w_328h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d443709c945411e6a9a10242ac110002_220w_332h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d41461d0945411e6a9a10242ac110002_222w_332h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s2.cdn.xiachufang.com/d3c62934945411e6b87c0242ac110003_226w_328h.jpg?imageView2/2/w/300/interlace/1/q/90
http://s1.cdn.xiachufang.com/d3952c76945411e6b87c0242ac110003_220w_330h.jpg@2o_50sh_1pr_1l_300w_90q_1wh

下载的图片:


爬去“下厨房”教程页面的简单爬虫就这样喽

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容