python抓取网页数据并截图_网络爬虫-使用Python抓取网页数据
搬自大神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代码
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()
输出结果就是Objective-C的 数组
@[@{@"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"}];
使用Xcode 写到Plist中去
#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;
}
到这里,就可以看到plist 文件可以用于测试了
如果想要复制粘贴这里面的代码,那就选择Sublime编辑器
(欢迎转帖,请附上源地址boyXiong)
python抓取网页数据并截图_网络爬虫-使用Python抓取网页数据相关推荐
- python爬取腾讯视频弹幕_网络爬虫实战(四):爬取腾讯视频电视剧弹幕-Go语言中文社区...
文章目录 实战背景 说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧.而在他的多部小说中,翻拍次数最多的无疑就是<倚天屠龙记>了,而且次数已经高达十四次.最早的是1963香 ...
- org.apache.poi Excel列与行都是动态生成的_网络爬虫:Python动态网页爬虫2种技术方式及示例...
作者:糖甜甜甜 https://mp.weixin.qq.com/s/5Dwh5cbfjpDfm_FRcpw1Ug 这一讲,我将会为大家讲解稍微复杂一点的爬虫,即动态网页的爬虫. 动态网页技术介绍 动 ...
- python爬虫爬取新闻标题及链接_网络爬虫百度新闻标题及链接爬取
1.主题:百度新闻爬取 2. python代码: import requests from bs4 import BeautifulSoup def getHTMLText(url): try: r ...
- [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...
- Python 网络爬虫实战:爬取知乎回答中的全部图片
平时逛知乎的时候,经常能看到很多很棒的图片,精美的壁纸,搞笑的表情包,有趣的截图等等,总有想全部保存下来的冲动. 于是在一个小老弟的拜托之下,我把之前的知乎爬虫改造了一下,改装成了一个可以下载知乎回答 ...
- [day2]python网络爬虫实战:爬取美女写真图片(增强版)
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...
- python能帮我们实现什么用_你都用 Python 来做什么?
「除了生孩子,Python 啥都能做!!!」这句话最近实在是有些火啊,难道 Python 就真的这么强吗?当然,不信咱们可以看一下数据 这是近期 TIOBE 公布的 2019 年 10 月编程语言排行 ...
- 网络爬虫,python和数据分析学习--part1
# -- coding: utf-8 -- """ Created on Tue Oct 10 08:38:20 2017 本段程序为科大王澎老师<网络爬虫,pyt ...
- 网络爬虫,python和数据分析学习--part2
Created on Tue Oct 10 10:47:31 2017 本段程序为科大王澎老师<网络爬虫,python和数据分析>中P15,针对spyder3做了微调 主要任务:实现了自动 ...
最新文章
- SQL Server 日期和时间相关的数据类型有两种
- 当代大学生对学习Linux的一点拙见
- matlab肌电信号平滑滤波_BCIduino 滤波和频谱计算操作
- 1.1 VMware 一步一步创建虚拟机
- NSLog中格式符列表
- Web browser的发展演变
- 8位可控加减法器_自主可控:QTouch在军工道系统上的应用
- Android 入门篇(一)环境搭建
- js window对象常用内容
- 工作基本功:问题解决不了或不满意,不要重复,应该向上级反映或投诉
- UE4下载与存储图片
- PDMS管道设计基础到精通视频教程
- 浏览器提示:你的连接不是专用连接的解决方法
- 用纯JavaScript制作扫雷游戏-1
- Python爬虫进阶必备 | X天下与XX二手房密码加密分析
- @Scheduled出现Unexpected error occurred in scheduled task
- 模棱两可的生物学概念问题辨析1
- 小程序分享功能以及坑
- Synchronized的前因后果
- GitHub开源协议