Enviar búsqueda
Cargar
Python网络抓取小试
•
5 recomendaciones
•
903 vistas
greatghoul
Seguir
以抓取人人网美女相册为例,讲解简单的网络抓取过程。
Leer menos
Leer más
Desarrollo personal
Denunciar
Compartir
Denunciar
Compartir
1 de 11
Descargar ahora
Descargar para leer sin conexión
Recomendados
Chrome扩展开发入门
Chrome扩展开发入门
greatghoul
Build a todo chrome app
Build a todo chrome app
greatghoul
Chrome extension 2014.08.03
Chrome extension 2014.08.03
louisasea666
20100915 學習撰寫 Google Chrome Extension
20100915 學習撰寫 Google Chrome Extension
Justin Lee
Modello - Chiara Bosoni
Modello - Chiara Bosoni
Naba Design
Contadino Design - Gruppo 2
Contadino Design - Gruppo 2
Naba Design
Contadino Design - Gruppo 1
Contadino Design - Gruppo 1
Naba Design
Contadino Design - Gruppo 3
Contadino Design - Gruppo 3
Naba Design
Recomendados
Chrome扩展开发入门
Chrome扩展开发入门
greatghoul
Build a todo chrome app
Build a todo chrome app
greatghoul
Chrome extension 2014.08.03
Chrome extension 2014.08.03
louisasea666
20100915 學習撰寫 Google Chrome Extension
20100915 學習撰寫 Google Chrome Extension
Justin Lee
Modello - Chiara Bosoni
Modello - Chiara Bosoni
Naba Design
Contadino Design - Gruppo 2
Contadino Design - Gruppo 2
Naba Design
Contadino Design - Gruppo 1
Contadino Design - Gruppo 1
Naba Design
Contadino Design - Gruppo 3
Contadino Design - Gruppo 3
Naba Design
Contadino Design - Work in progress
Contadino Design - Work in progress
Naba Design
Modello - Alexander Cintelli
Modello - Alexander Cintelli
Naba Design
Contadino Design - Gruppo 5
Contadino Design - Gruppo 5
Naba Design
Modello - Camilla Casiccia
Modello - Camilla Casiccia
Naba Design
Modello - Riccardo Arzuffi
Modello - Riccardo Arzuffi
Naba Design
Modello - Giulia Boeri
Modello - Giulia Boeri
Naba Design
Modello - Lavinia Baroni
Modello - Lavinia Baroni
Naba Design
Contadino Design - Gruppo 7
Contadino Design - Gruppo 7
Naba Design
Modello - Riccardo Buttazzo
Modello - Riccardo Buttazzo
Naba Design
Contadino Design - Gruppo 8
Contadino Design - Gruppo 8
Naba Design
Fake Food - Students
Fake Food - Students
Naba Design
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
Justin Lee
2013/05/19 Sketching with code@JSDC2013
2013/05/19 Sketching with code@JSDC2013
Justin Lee
Chrome Extension Develop Starts
Chrome Extension Develop Starts
taobao.com
20121115 Slides
20121115 Slides
Tonyq Wang
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
Souyi Yang
[DCTPE2011] Drupal 6 的 CCK/Views運用--林振昇
[DCTPE2011] Drupal 6 的 CCK/Views運用--林振昇
Drupal Taiwan
Adorable python
Adorable python
Rhythm Sun
Django入门
Django入门
oikomi
Python和web开发
Python和web开发
moonbingbing
100902 wm4wps-py-webdev
100902 wm4wps-py-webdev
Zoom Quiet
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
Yang FaFa
Más contenido relacionado
Destacado
Contadino Design - Work in progress
Contadino Design - Work in progress
Naba Design
Modello - Alexander Cintelli
Modello - Alexander Cintelli
Naba Design
Contadino Design - Gruppo 5
Contadino Design - Gruppo 5
Naba Design
Modello - Camilla Casiccia
Modello - Camilla Casiccia
Naba Design
Modello - Riccardo Arzuffi
Modello - Riccardo Arzuffi
Naba Design
Modello - Giulia Boeri
Modello - Giulia Boeri
Naba Design
Modello - Lavinia Baroni
Modello - Lavinia Baroni
Naba Design
Contadino Design - Gruppo 7
Contadino Design - Gruppo 7
Naba Design
Modello - Riccardo Buttazzo
Modello - Riccardo Buttazzo
Naba Design
Contadino Design - Gruppo 8
Contadino Design - Gruppo 8
Naba Design
Fake Food - Students
Fake Food - Students
Naba Design
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
Justin Lee
2013/05/19 Sketching with code@JSDC2013
2013/05/19 Sketching with code@JSDC2013
Justin Lee
Chrome Extension Develop Starts
Chrome Extension Develop Starts
taobao.com
Destacado
(14)
Contadino Design - Work in progress
Contadino Design - Work in progress
Modello - Alexander Cintelli
Modello - Alexander Cintelli
Contadino Design - Gruppo 5
Contadino Design - Gruppo 5
Modello - Camilla Casiccia
Modello - Camilla Casiccia
Modello - Riccardo Arzuffi
Modello - Riccardo Arzuffi
Modello - Giulia Boeri
Modello - Giulia Boeri
Modello - Lavinia Baroni
Modello - Lavinia Baroni
Contadino Design - Gruppo 7
Contadino Design - Gruppo 7
Modello - Riccardo Buttazzo
Modello - Riccardo Buttazzo
Contadino Design - Gruppo 8
Contadino Design - Gruppo 8
Fake Food - Students
Fake Food - Students
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
2013/05/19 Sketching with code@JSDC2013
2013/05/19 Sketching with code@JSDC2013
Chrome Extension Develop Starts
Chrome Extension Develop Starts
Similar a Python网络抓取小试
20121115 Slides
20121115 Slides
Tonyq Wang
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
Souyi Yang
[DCTPE2011] Drupal 6 的 CCK/Views運用--林振昇
[DCTPE2011] Drupal 6 的 CCK/Views運用--林振昇
Drupal Taiwan
Adorable python
Adorable python
Rhythm Sun
Django入门
Django入门
oikomi
Python和web开发
Python和web开发
moonbingbing
100902 wm4wps-py-webdev
100902 wm4wps-py-webdev
Zoom Quiet
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
Yang FaFa
Django step0
Django step0
永昇 陳
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
84zhu
20130325 mldm monday spide r
20130325 mldm monday spide r
Chia-Chi Chang
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
Drupal Taiwan
從雛形到設計-了解您的使用者在想什麼
從雛形到設計-了解您的使用者在想什麼
Souyi Yang
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
Souyi Yang
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
Mu Chun Wang
KSDG Python and MongoDB for web
KSDG Python and MongoDB for web
Toomore
构建网络工具箱
构建网络工具箱
Lv Jian
資訊創意課程 - Create A Personal Website 1
資訊創意課程 - Create A Personal Website 1
均民 戴
Grpc go-in-php
Grpc go-in-php
光照 刘
Seo
Seo
mornone
Similar a Python网络抓取小试
(20)
20121115 Slides
20121115 Slides
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
[DCTPE2011] Drupal 6 的 CCK/Views運用--林振昇
[DCTPE2011] Drupal 6 的 CCK/Views運用--林振昇
Adorable python
Adorable python
Django入门
Django入门
Python和web开发
Python和web开发
100902 wm4wps-py-webdev
100902 wm4wps-py-webdev
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
Django step0
Django step0
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
20130325 mldm monday spide r
20130325 mldm monday spide r
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
從雛形到設計-了解您的使用者在想什麼
從雛形到設計-了解您的使用者在想什麼
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
KSDG Python and MongoDB for web
KSDG Python and MongoDB for web
构建网络工具箱
构建网络工具箱
資訊創意課程 - Create A Personal Website 1
資訊創意課程 - Create A Personal Website 1
Grpc go-in-php
Grpc go-in-php
Seo
Seo
Python网络抓取小试
1.
Python 网络抓取小试
-- 抓取人人网美女相册 @greatghoul 2011-04-09
2.
涉及的工具及技术 工具
技术 ● Firefox ● Data Fetching – Firebug – urllib, urllib2,cookielib ● Chrome ● Data Parsing – Developer Tools – re, lxml, minidom,json ● IE6-IE8 ● Data Encode – HttpWatch – Codecs ● IE9 ● Crawling Framework – Developer Tools – Scrapy
3.
柿子要找软的捏 ●
为什么选择人人网? – 有我们需要的资源-海量的美女 – 防抓的措施基本没有,容易下手 – 网页源码组织良好,易于解析 ● 为什么选择 Python ? – 因为简单 – 因为喜欢
4.
分析步骤 ●
是什么:指定相册的所有图片原图 ● 在哪里:相册页面及 URL 模式 – 是否需要登陆? – 是否会分页? – 如何发页? ● 怎么取: – HTML ? – XML ? – JSON ?
5.
相册页面分析 http://photo.renren.com/photo/223518589/album-222062006?curpage=0 Http://~/photo/<UserID>/album-<AlbumID>?curpage=<Page> ●
页面内容需要登陆才能访问 ● <Page> 为由 0 开始, 0 代表第 1 页 ● 当 <page> 指定为超过页面范围的值时,页面并不会报错,而 是图片列表为空。
6.
登陆分析(使用工具) ●
登录地址: http://www.renren.com/PLogin.do ● 登录方式: POST ● 表单数据: – email: 帐户名 – password: 密码 – autoLogin: true – origURL:http://www.renren.com/home – domain:renren.com ● Header ?暂时没有
7.
模拟登陆 cookie = cookielib.CookieJar() Opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookie)) urllib2.install_opener(opener) data = ( ('email', username), ('password',password), ('origURL',"http://www.renren.com/Home.do"), ('domain',"renren.com") ) response = urllib2.urlopen( 'http://www.renren.com/PLogin.do', urllib.urlencode(data))
8.
取得大图页面列表 取得页面源码 html = urllib2.urlopen(url).read() 相册图片列表代码片断 <div id="albumThumbMode" ...> <ul><li><a href="http://~/photo4155919539" class="img"> <img ... /></a></span></li>... </ul></div> 使用正则获取列表 re.findall(r'<a href="(.*)".* class="img">', content) 使用 lxml 获取列表 doc = html.document_fromstring(content) doc.xpath('//div[@id="albumThumbMode"]//li//a[@class="img "]//@href')
9.
取得图片地址并下载 使用最省力的方法 http://~/photo/224759290/photo2665858586/ajax JSON 片断 {"photo":{"large":"http://~/p_large_***.jpg"}} 解析 JSON
,获取大图地址 photo = json.loads(self.do_post(url + '/ajax')) photo_url = photo.get('photo').get('large') filename = re.split('/', photo_url)[1] 下载大图 f = open(os.path.join(album_dir, filename), 'wb') f.write(self.session.open(photo_url).read()) f.close()
10.
总结 ●
别瞎折腾,走近道 – 使用 API – 使用框架 Scrapy – 采用更简单的数据格式 ● 注意编码一致 ● 不要作恶 ● 保持快乐
11.
仅仅为了抓取 ? 你还可以 ... ●
制作照片拼贴! ● 定时更换壁纸! ● 自动备份相册! ● 批量贴图代码! ● 相册更新邮件通知! ● 。。。
Descargar ahora