爬取豆瓣的tp250电影名单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取豆瓣的tp250电影名单相关的知识,希望对你有一定的参考价值。

#       https://movie.douban.com/top250?start=25&filter=   要爬取的网页

import re
from urllib.request import urlopen

def getPage(url):
    response=urlopen(url)
    return response.read().decode(‘utf-8‘)

def parsePage(s):
    ret=com.finditer(s)
    for i in ret:
        ret={
            ‘id‘: i.group(‘id‘),
            ‘move_name‘:i.group(‘move_name‘),
            ‘move_d‘:i.group( ‘move_d‘),
            ‘move_t‘:i.group(‘move_t‘),
            ‘content‘: i.group(‘content‘),
            ‘infor‘:i.group(‘infor‘)
        }
        yield  ret

def main(num):
    url=‘https://movie.douban.com/top250?start=%s&filter= ‘ %num
    res=getPage(url)
    ret=parsePage(res)
    print(ret)
    f=open(‘move‘,mode=‘a+‘,encoding=‘utf-8‘)
    for obj in ret:
        print(obj)
        data1=str(obj).replace(‘\n‘,‘‘)
        data2=data1.replace(‘ ‘,‘‘)
        f.write(data2 + ‘
‘)
    f.close()

com=re.compile(‘<div class="item">(?:.*?)<em class="">(?P<id>.*?)</em>(?:.*?)alt=(?P<move_name>.*?)src(?:.*?)导演:‘
            ‘(?P<move_d>.*?)&nbsp;(?:.*?)<br>(?P<move_t>.*?)&nbsp(?:.*?)&nbsp;/&nbsp;(?P<content>.*?)</p>(?:.*?)<span class="inq">(?P<infor>.*?)</span>‘,re.S)

count=0
for i in range(10):
    main(count)
    count+=25

以上是关于爬取豆瓣的tp250电影名单的主要内容,如果未能解决你的问题,请参考以下文章

团队-爬取豆瓣电影TOP250-需求分析

python爬取豆瓣电影Top250(附完整源代码)

团队-爬取豆瓣电影TOP250-需求分析

团队-Python 爬取豆瓣电影top250-需求分析

《团队-爬取豆瓣电影TOP250-需求分析》

团队编程项目代码设计规范(爬取豆瓣电影top250)