学习了下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"

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

python实现的一个简单的网页爬虫的更多相关文章

  1. 做一个简单的scrapy爬虫

    前言: 做一个简单的scrapy爬虫,带大家认识一下创建scrapy的大致流程.我们就抓取扇贝上的单词书,python的高频词汇. 步骤: 一,新建一个工程scrapy_shanbay 二,在工程中中 ...

  2. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  3. jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)

    JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...

  4. Python十分适合用来开发网页爬虫

    Python十分适合用来开发网页爬虫,理由如下:1.抓取网页自身的接口比较与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简练:比较其他动态脚本语言,如perl,shel ...

  5. python定义的一个简单的shell函数的代码

    把写代码过程中经常用到的一些代码段做个记录,如下代码段是关于python定义的一个简单的shell函数的代码. pipe = subprocess.Popen(cmd, stdout=subproce ...

  6. Java实现一个简单的网络爬虫

    Java实现一个简单的网络爬虫 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWri ...

  7. 一个简单的C#爬虫程序

    这篇这篇文章主要是展示了一个C#语言如何抓取网站中的图片.实现原理就是基于http请求.C#给我们提供了HttpWebRequest和WebClient两个对象,方便发送请求获取数据,下面看如何实 1 ...

  8. Html+css 一个简单的网页模板

    一个简单的网页模板,有导航.子菜单.banner部分 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&q ...

  9. python爬虫——写出最简单的网页爬虫

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材.我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的 ...

随机推荐

  1. 启动myeclipse出现JVM terminated. Exit code=-1

    在启动myeclipse时出现如图: 解决方法 第一种: myeclipse.ini中内存设置过大导致 修改: 256m改成128m,512m 改为 256m. 第二种:在myeclipse.ini ...

  2. VisionPro工业视觉的标定方法

    工业视觉常用的几种标定方式. 计算像素比 有些时候我们需要的检测数据并不需要特别准确,并且手边没有其它标定工具,可以使用这种方法大概算一算每个像素对应多大距离. 找一个知道距离的物体,测出它的像素距离 ...

  3. python中获取python版本号的方法【转】

    原文 python3 #!/usr/bin/python # 第1种方法 import platform print(platform.python_version()) >>> i ...

  4. 请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。

    题解:观察测试样例,会发现每个子集的选择规律与二进制((2^n) - 1)到 1 的顺序生成的规律是一致的,样例中n=3,2^n-1=7,用二进制表示为111,其中每一位的1表示数组中的三个数都选择. ...

  5. 4C. Stars

    4C. Stars Time Limit: 2000ms Case Time Limit: 2000ms Memory Limit: 65536KB   64-bit integer IO forma ...

  6. HLG 2025

    确定大小 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 50(15 users) Total Accepted: 12(11 user ...

  7. 自动化运维之shell引号和正则表达式(二)

    1 shell引号 1)反斜线\ 转译 echo * 显示当前目录中所有的文件列表 echo \* 显示*字符 换行 find / \ 换行输入多行命令 > -name "test.t ...

  8. Quartz与Terracotta的集成

    Quartz与Terracotta的集成 博客分类: Java&Socket 企业应用面临的问题 开源组件的应用 quartz任务集群数据库任务调度Terracotta  Quartz与Ter ...

  9. MAC生成公钥私钥

    前言 需要开发者在本地上使用openssl来生成私钥和公钥 由于mac 自带openssl工具,所以不用像windows那样要下载安装openssl工具 步骤 1.创建一个文件夹,终端进入该文件夹 c ...

  10. BZOJ 1800: [Ahoi2009]fly 飞行棋【暴力】

    Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为 ...