学习了下python,看了一个简单的网页爬虫:http://www.cnblogs.com/fnng/p/3576154.html

自己实现了一个简单的网页爬虫,获取豆瓣的最新电影信息。

爬虫主要是获取页面,然后对页面进行解析,解析出自己所需要的信息进行进一步分析和挖掘。

首先需要学习python的正则表达式:http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html

解析的url:http://movie.douban.com/

查看网页源代码,分析要解析的地方:

得到资源信息:

1.电影图片

2.电影标题

3.电影评分

4.电影票信息

抓取结果为:

python实现代码为:

#!/usr/bin/env python
#coding=utf-8
import urllib
import urllib2
import re
import pymongo
def getHtml(url):
page=urllib2.urlopen(url)
html=page.read()
page.close()
return html def getContent(html):
reg=r'<li class="poster">.+?src="(.+?\.jpg)".+?</li>.+?class="title".+?
class="">(.+?)</a>.+?class="rating".+?class="subject-rate">(.+?)</span>.+?<a onclick=".+?">(.+?)</a>'
contentre=re.compile(reg,re.DOTALL)
contentlist=contentre.findall(html)
return contentlist def getConnection(): #拿到数据库连接
conn=pymongo.Connection('localhost',27017)
return conn def saveToDB(contentlist): #存储至mongodb数据库中
conn=getConnection()
db=conn.db
t_movie=db.t_movie
for content in contentlist:
value=dict(poster=content[0],title=content[1],rating=content[2],ticket_btn=content[3])
t_movie.save(value) def display(contentlist):
for content in contentlist:
#values=dict(poster=content[0],title=content[1],rating=content[2],ticket_btn=content[3])
print 'poster','\t',content[0]
print 'title','\t',content[1]
print 'rating','\t',content[2]
print 'ticket_btn','\t',content[3]
print'..............................................................................' if __name__=="__main__":
url="http://movie.douban.com/"
html=getHtml(url)
#print html
contentlist=getContent(html)
print len(contentlist)
#print contentlist
display(contentlist)
saveToDB(contentlist)
print "finished"

到此,一个简单的网页爬虫就成功完成了,是不是很简单~~

最新文章

  1. IOS开发之--UIScrollView pagingEnabled自定义翻页宽度
  2. apache中.htaccess不起作用
  3. 【py】安装ipython-notebook
  4. XSS防御篇
  5. C#WPF做FTP上传下载获取文件列表
  6. Linux备份入门:3种克隆方法详解_Clonezilla
  7. poj2031 Building a Space Station
  8. Light oj 1005 - Rooks (找规律)
  9. codeforces 334B - Eight Point Sets
  10. javascript note
  11. Nutch配置
  12. (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。
  13. [Swift]LeetCode996. 正方形数组的数目 | Number of Squareful Arrays
  14. git 创建tag , 查看tag , 删除tag
  15. Java主要版本平台
  16. json转对象-对象转json
  17. c++中istream类型到bool类型的隐式转换
  18. element-UI 下拉条数多渲染慢
  19. e834. 设置JTabbedPane中卡片的位置
  20. 3.4 Templates -- Displaying A List of Items(展示一个集合)

热门文章

  1. 牛客网暑期ACM多校训练营(第六场) J Heritage of skywalkert(数论, eth_element)
  2. js--进阶知识点
  3. ubuntu介绍以及使用
  4. lfyzoj103 割海成路之日
  5. Wp 导航到手机定位设置页面
  6. 通过日志动态查看正在执行的mysql语句
  7. VOC Segmentation GT图像颜色表生成分析
  8. hdu 1907 尼姆博弈
  9. ajax原生post请求
  10. 【邻接表+匈牙利算法模板】Elementary Math