爬取豆瓣电影TOP250

这是一个很好的新手练习项目,爬取豆瓣top250的电影,并分别记录排名、片名、导演、主演、评论等信息,保存在一个txt文档里。

对新手来说,难点部分在于如何找到并成功跳转到下一页,并且在最后一页的时候识别出来并停止爬虫。

一个很基础的爬虫。以下是代码部分。

注:想学习Python的小伙伴们 可以 进群:984632579 领取从0到1完整学习资料 视频 源码 精品书籍 一个月经典笔记和99道练习题及答案

import requests

from bs4 import BeautifulSoup

import time

import re

lurl = ‘https://movie.douban.com/top250’

movie = []

def getlist(listurl):

time.sleep(2)

headers = {‘User-Agent’: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36’}

res = requests.get(listurl)

soup = BeautifulSoup(res.text, ‘html.parser’)

movielist = soup.select(‘.grid_view li’)

for m in movielist:

rank = m.select(’em’)[0].text

title = m.select(‘.title’)[0].text

direct = m.select(‘.info .bd p’)[0].text.strip()

actor = ‘主演:’.join(direct.split(‘ 主演:’))

director = ‘年代:’.join(actor.split(‘ ‘))

if m.select(‘.inq’):

comments = m.select(‘.inq’)[0].text.strip()

else:

comments = ‘None’

movie.append(‘排名: ‘+ rank+ ” +’片名: ‘+ title + ”+ director + ” + ‘评论: ‘+ comments +” + ”)

if soup.select(‘.next a’):

asoup = soup.select(‘.next a’)[0][‘href’]

Next_page = lurl + asoup

getlist(Next_page)

else:

print(‘结束’)

return movie

movies = getlist(lurl)

with open(‘movie.txt’, ‘w’) as m:

for a in movies:

m.write(a)

    原文作者:编程新视野
    原文地址: https://www.jianshu.com/p/9345e5fe5c5a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞