python爬取豆瓣网Top250电影信息并对信息作统计处理
目标网站:https://movie.douban.com/top250
一、爬取保存豆瓣网Top250电影相关信息
运行本代码需要以下几个库
import time
import requests
import re
from openpyxl import workbook
from bs4 import BeautifulSoup as bs
python爬取网站时,首先第一步要了解网站结构,打开豆瓣网Top250,这里以谷歌浏览器为例,按下F12可以快速打开网站源码
快速查看xpath,找到需要爬取的信息的xpath,爬取,筛选有用信息保存到变量
def getData(self):
gh = self.getHtml()
for html in gh:
soup = bs(html, 'lxml')
for info in soup.find_all('div', class_='info'):
c_name = info.find('span',class_='title').text.strip() # 电影中文名
message = info.select('div.bd p')[0].text.strip() #导演、主演、年份、地区信息
yat = re.search('[0-9]+.*\/?', message).group().split('/') #年份、地区、类型
year,area,type = yat[0],yat[1],yat[2]#得到年份、地区、类型
da = re.search('导演.+\s',message).group().strip()+'...'
director = re.findall('导演:(.+?)\s',da)[0].strip() #导演
#没有主演信息时,进行异常处理
try:
mainActors = re.findall('主演:(.+?)[.,]+',da)[0].strip()
except IndexError:
mainActors = '暂无主演信息'
mark_info = info.find('div',class_='star')
score= mark_info.find('span',class_='rating_num').text.strip()#评分
count = re.search('[0-9]+',mark_info.select('span')[