栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

需要用到的模块

需要用到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'我是标题

哈哈哈哈

'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'u6211u662fu6807u9898', u'u54c8u54c8u54c8u54c8'] In [14]: # 很明显是个listIn [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# 获取步骤正文中的每一步的

代码块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/90http://s2.cdn.xiachufang.com/74e5229e27d411e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/6c52939427cc11e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/6d72d51827cc11e7bc9d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/6d3c711c27cc11e7947d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90http://s1.cdn.xiachufang.com/5b64d93e27cc11e7bc9d0242ac110002_5616w_3744h.jpg@2o_50sh_1pr_1l_300w_90q_1whhttp://s2.cdn.xiachufang.com/705e7f8e27cc11e7bc9d0242ac110002_5616w_3744h.jpg?imageView2/2/w/300/interlace/1/q/90http://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_1whhttp://s2.cdn.xiachufang.com/d81316fa945411e6a9a10242ac110002_220w_324h.jpg?imageView2/2/w/300/interlace/1/q/90http://s1.cdn.xiachufang.com/d7efa6f2945411e6b87c0242ac110003_212w_322h.jpg@2o_50sh_1pr_1l_300w_90q_1whhttp://s2.cdn.xiachufang.com/d7c617c4945411e6a9a10242ac110002_214w_323h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d79e01c6945411e6a9a10242ac110002_217w_323h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d772b78c945411e6b87c0242ac110003_220w_330h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d743d566945411e6a9a10242ac110002_222w_323h.jpg?imageView2/2/w/300/interlace/1/q/90http://s1.cdn.xiachufang.com/d70f24ec945411e6a9a10242ac110002_215w_324h.jpg@2o_50sh_1pr_1l_300w_90q_1whhttp://s2.cdn.xiachufang.com/d6bf2550945411e6b87c0242ac110003_215w_326h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d682ed1a945411e6a9a10242ac110002_220w_323h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d656fe26945411e6a9a10242ac110002_217w_322h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d6245f20945411e6b87c0242ac110003_219w_329h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d5c232c8945411e6b87c0242ac110003_218w_327h.jpg?imageView2/2/w/300/interlace/1/q/90http://s1.cdn.xiachufang.com/d58c985c945411e6a9a10242ac110002_219w_331h.jpg@2o_50sh_1pr_1l_300w_90q_1whhttp://s1.cdn.xiachufang.com/d51f27e0945411e6a9a10242ac110002_219w_323h.jpg@2o_50sh_1pr_1l_300w_90q_1whhttp://s1.cdn.xiachufang.com/d4e25bc6945411e6b87c0242ac110003_216w_326h.jpg@2o_50sh_1pr_1l_300w_90q_1whhttp://s2.cdn.xiachufang.com/d4a94cfa945411e6a9a10242ac110002_219w_331h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d47030f0945411e6a9a10242ac110002_222w_328h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d443709c945411e6a9a10242ac110002_220w_332h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d41461d0945411e6a9a10242ac110002_222w_332h.jpg?imageView2/2/w/300/interlace/1/q/90http://s2.cdn.xiachufang.com/d3c62934945411e6b87c0242ac110003_226w_328h.jpg?imageView2/2/w/300/interlace/1/q/90http://s1.cdn.xiachufang.com/d3952c76945411e6b87c0242ac110003_220w_330h.jpg@2o_50sh_1pr_1l_300w_90q_1wh

下载的图片:


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



作者:退出简书黑
链接:https://www.jianshu.com/p/716e881012bc

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/223553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号