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

此次是师哥给布置的任务,所以这几天就在研究如何完成获取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()





看起来程序是不是很简单。其实,只要知道了每个功能在什么地方用,怎么用,最后实现起来还是很简单的。

当然,再说一次,这些都是基础的,学习之路还在继续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值