Python爬取豆瓣top250电影信息

2019-04-07  本文已影响0人  jangohe

Python爬取豆瓣top250电影信息

1.GET,POST请求

import requests
req = requests.get("https://www.baidu.com/")
print(req.status_code)

200

状态码

分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 务器错误,服务器在处理请求的过程中发生了错误

2.re正则表达式

3.爬取豆瓣top250电影信息

import requests
import re

headers = {
    'Referer': 'https://movie.douban.com/chart',
    'Host': 'movie.douban.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}

retag = re.compile(
                r'.*?<em class="">(.*?)</em>'  # 匹配 rank
                r'.*?<span class="title">(.*?)</span>'  # 匹配 名称
                r'.*?<span class="title">&nbsp;/&nbsp;(.*?)</span>'
                r'.*?<span class="other">&nbsp;/&nbsp;(.*?)</span>'
                r'.*?<p class="">.*?: (.*?)&nbsp.*?:(.*?)<br>.*?(\d+).*?</p>'  # 匹配 导演 主演 年份
                r'.*?<span class="rating_num" property="v:average">(.*?)</span>'  # 匹配 评价
                r'.*?<span class="inq">(.*?)</span>',
                re.S)

mlists = []     #储存所有电影信息

for i in range(0, 250, 25):
    url = 'https://movie.douban.com/top250?start=%s&filter=' % i
    r = requests.get(url)
    print(r.status_code)
    r.encoding = 'utf-8';
    mlist = retag.findall(r.text)
    for m in mlist:
        list = {
            '排名': m[0],
            '电影名称': m[1] + '/' + m[2] + '/' + m[3],
            '导演': m[4],
            '主演': m[5],
            '年份': m[6],
            '评分': m[7],
            '短评': m[8]
        }
        mlists.append(list)
    print('完成前%s条电影信息的录入' % i)

print(mlists)
image.png
上一篇 下一篇

猜你喜欢

热点阅读