python抓取网页数据并截图_网络爬虫-使用Python抓取网页数据

这篇博客介绍了如何在Mac上使用Python搭建环境,安装BeautifulSoup库,然后通过编写Python代码抓取豆瓣电影Top250页面的电影名称和图片链接,最终将数据转换为Objective-C数组格式,适合新手入门Python爬虫。
摘要由CSDN通过智能技术生成

搬自大神boyXiong的干货!

闲来无事,看看了Python,发现这东西挺爽的,废话少说,就是干

准备搭建环境

因为是MAC电脑,所以自动安装了Python 2.7的版本

添加一个 库 Beautiful Soup ,方法这里说两种

1.在终端输入 pip install BeautifulSoup

2.手动下载包后,终端切换到 解压的文件夹,输入 sudo python setup.py install 下载地址BeautifulSoup

开始写代码吧

先找一个想要抓取东西的网站,这里我就随便找一个吧 地址是:http://movie.douban.com/chart

好了在终端输入 vim 我知道这个东西,对于新手来说,就是一个挑战,这里我也建议使用轻量的Sublime

代码如下 (注意python是严格的缩进,以下代码要顶格写)

1 #-*- coding:utf-8 -*-

2 import urllib2

3 import urllib

4 html=urllib2.urlopen("http://movie.douban.com/chart").read()

5 print html

输出的结果就是一个HTML的网页,这里我就看到自己想要抓取的图片和图片名的文字片段

道士下山

分析我们想要的,一个是图片的名称,一个是图片的链接地址,直接上Python代码

copycode.gif

1 #-*- coding:utf-8 -*-

2 import urllib2

3 from bs4 import BeautifulSoup

4

5 import sys

6 reload(sys)

7 sys.setdefaultencoding('utf8')

8

9 # 函数

10 def printPlistCode():

11 #1.得到这个网页的 html 代码 #

12 html = urllib2.urlopen("http://movie.douban.com/chart").read()

13

14 #2.转换 一种格式,方便查找

15 soup = BeautifulSoup(html)

16 #3. 得到 找到的所有 包含 a 属性是class = nbg 的代码块,数组

17 liResutl = soup.findAll('a', attrs = {"class" : "nbg"})

18 #4.用于拼接每个字典的字符串

19 tmpDictM = ''

20

21 #5. 遍历这个代码块 数组

22 for li in liResutl:

23

24 #5.1 找到 img 标签的代码块 数组

25 imageEntityArray = li.findAll('img')

26

27 #5.2 得到每个image 标签

28 for image in imageEntityArray:

29 #5.3 得到src 这个属性的 value 后面也一样 类似 key value

30 link = image.get('src')

31 imageName = image.get('alt')

32 #拼接 由于 py中 {} 是一种数据处理格式,类似占位符

33 tmpDict = '''@{0}@\"name\" : @\"{1}\", @\"imageUrl\" : @\"{2}\"{3},'''

34

35 tmpDict = tmpDict.format('{',imageName,link,'}')

36

37 tmpDictM = tmpDictM + tmpDict

38

39 #6.去掉最后一个 ,

40 tmpDictM = tmpDictM[0:len(tmpDictM) - 1].decode('utf8')

41

42 #7 拼接全部

43 restultStr = '@[{0}];'.format(tmpDictM)

44

45 print restultStr

46

47

48 if __name__ == '__main__':

49 printPlistCode()

copycode.gif

输出结果就是Objective-C的 数组

copycode.gif

@[@{@"name" : @"进击的巨人真人版:前篇", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2251690571.jpg"},@{@"name" : @"花与爱丽丝杀人事件", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2222398443.jpg"},@{@"name" : @"小黄人大眼萌", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2258235689.jpg"},@{@"name" : @"小森林 冬春篇", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2215147728.jpg"},@{@"name" : @"道士下山", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2251450614.jpg"},@{@"name" : @"深夜食堂 电影版", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2205014862.jpg"},@{@"name" : @"小男孩", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2230105606.jpg"},@{@"name" : @"头脑特工队", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2231021196.jpg"},@{@"name" : @"百元之恋", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2205471169.jpg"},@{@"name" : @"杀破狼2", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2246885606.jpg"}];

copycode.gif

使用Xcode 写到Plist中去

copycode.gif

#import

int main(int argc, const char * argv[]) {

NSArray *plistArray = @[@{@"name" : @"进击的巨人真人版:前篇", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2251690571.jpg"},@{@"name" : @"花与爱丽丝杀人事件", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2222398443.jpg"},@{@"name" : @"小黄人大眼萌", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2258235689.jpg"},@{@"name" : @"小森林 冬春篇", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2215147728.jpg"},@{@"name" : @"道士下山", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2251450614.jpg"},@{@"name" : @"深夜食堂 电影版", @"imageUrl" : @"http://img3.douban.com/view/movie_poster_cover/ipst/public/p2205014862.jpg"},@{@"name" : @"小男孩", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2230105606.jpg"},@{@"name" : @"头脑特工队", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2231021196.jpg"},@{@"name" : @"百元之恋", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2205471169.jpg"},@{@"name" : @"杀破狼2", @"imageUrl" : @"http://img4.douban.com/view/movie_poster_cover/ipst/public/p2246885606.jpg"}];

//路径可以自己选择

[plistArray writeToFile:@"/Users/xxx/Desktop/test/movie.plist" atomically:YES];

return 0;

}

copycode.gif

到这里,就可以看到plist 文件可以用于测试了

20150823133821193

如果想要复制粘贴这里面的代码,那就选择Sublime编辑器

(欢迎转帖,请附上源地址boyXiong)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值