豆瓣电影搜索爬虫程序,爬虫小程序,适合初学者

最近在学python,之前用Python写过简单的图片爬取,今天想着用python爬一下豆瓣的电影,就有了下面的程序:

#coding:utf-8
import re
import sys
import urllib
from bs4 import BeautifulSoup
def movieSearch():
	douBanSearchurl = "http://movie.douban.com/subject_search?search_text="
	data = urllib.urlopen(douBanSearchurl+movieName).read()
	r = re.findall(r'	realy_url = re.sub('"','',r[0])
	movieData = urllib.urlopen(realy_url).read()
	soup = BeautifulSoup(movieData)
	movieSummary = soup.find_all("span",{'property':'v:summary'})
	#movieSummaryText = re.findall(r'(\W*.*\W*.*?)',movieData)
	movie = re.findall(r'name="title" value="(.*?)"',movieData)
	people = re.findall(r'name="desc" value="(.*?)"',movieData)
	imdb = re.findall(r' (.*?)',movieData)
	print u"IMDB电影网链接"
	print imdb[0]
	print u"豆瓣电影链接"
	print  realy_url
	print '*'*80
	print movie[0].decode('utf-8').encode('gbk')
	print people[0].decode('utf-8').encode('gbk')
	print u"电影简介"
	print '*'*80
	print movieSummary[0].encode('gbk')
if __name__=='__main__':
	while(1):
		arg = raw_input("请选择功能:\n1:电影搜索\n2:退出\n".decode('utf-8').encode('gb2312'))
		if arg=='1' :
			movieName=raw_input("请输入电影名:  ".decode('utf-8').encode('gb2312')).strip()
			print u"开始搜索"
			movieSearch()
		else:
			print u"退出程序"
			break;						


在调试过程中,遇到了两个头疼的问题:

1、beautifulSoup编码与CMD编码不匹配,beautifulSoup得到的网页信息均为Unicode,但是cmd不支持Unicode只有gbk,中文显示就成了很大问题了,所以就用了最笨的办法,通过转码来实现,目前还没找到更好的办法,如果有请指点下。

2、在写正则表达式时,不知道如何匹配,特别是对于网页文字有换行分段的形式,该如何匹配?

你可能感兴趣的:(Python爬虫学习)