您的位置:首页 > 编程语言 > Python开发

python爬虫之获取豆瓣电影信息

2016-10-18 22:09 459 查看
此次是师哥给布置的任务,所以这几天就在研究如何完成获取https://movie.douban.com/top250这个网站里面250部电影的信息。

主要就是应用了python的urllib2与beautifulsoup的结合使用,也是我第一次使用爬虫,当然现在看也是基础的使用,是体会到工具的强大

还有就是借助 http://cuiqingcai.com/category/technique/python ,给予了我很大帮助。关于python的学习,这个网站给了很好的指导。

然后,现在是对python面向对象还需进一步学习理解,第一次我是按普通程序完成了,并没有建造类。之后我想用类的方法来完成,结果就是仅仅创建了两个类。

# -*- coding: utf-8 -*-
import urllib2
import re
from bs4 import BeautifulSoup
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

class movies:
def __init__(self,baseUrl):
self.url=baseUrl
self.title=[]
self.info=[]

def getInfo(self):
try:
con=''
for i in range(0,250,25):
response=urllib2.urlopen(self.url+str(i)+'&fileter=')
con=con+response.read()
except urllib2.URLError,e:
if hasattr(e,"reason"):
print u"链接失败,错误原因",e.reason
html_text=con
soup=BeautifulSoup(html_text,'html.parser',from_encoding='UTF-8')

link_temp=soup.find_all('a',href=re.compile(r'subject'))
link_node=[]
for i in range(0,500,2):
link_node.append(link_temp[i])

file = open('F:/PythonFile/movies.txt', 'w')
for enter in link_node:
try:
res=urllib2.urlopen(enter['href'])
print res.getcode()
infomation=res.read()
soup1=BeautifulSoup(infomation,'html.parser',from_encoding='UTF-8')
self.info=soup1.find_all('div',id=re.compile(r'info'))
self.title=soup1.find_all('title')

each_info = self.info
each_title = self.title

for link_t in each_title:
file.write(link_t.get_text())
file.seek(0, 2)

for link_i in each_info:
file.write(link_i.get_text())
file.seek(0, 2)
except urllib2.URLError,e:
print "找不到这个网页"
file.close()

url='https://movie.douban.com/top250?start='
mov=movies(url)
mov.getInfo()
看起来程序是不是很简单。其实,只要知道了每个功能在什么地方用,怎么用,最后实现起来还是很简单的。

当然,再说一次,这些都是基础的,学习之路还在继续。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: