马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 wcq15759797758 于 2021-6-27 13:54 编辑 # -*-coding:utf-8 -*-
from lxml import etree # 导入etree子模块
import time # 导入时间模块
import random # 导入随机模块
import requests,json # 导入网络请求模块
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
# 处理字符串中的空白符,并拼接字符串
def processing(strs):
s = '' # 定义保存内容的字符串
for n in strs:
n = ''.join(n.split()) # 去除空字符
s = s + n # 拼接字符串
return s # 返回拼接后的字符串
# 获取电影信息
def get_movie_info(url):
response = requests.get(url,headers=headers) # 发送网络请求
html = etree.HTML(response.text) # 解析html字符串
div_all = html.xpath('//div[@class="info"]')
for div in div_all:
names = div.xpath('./div[@class="hd"]/a//span/text()') # 获取电影名字相关信息
name = processing(names) # 处理电影名称信息
infos = div.xpath('./div[@class="bd"]/p/text()') # 获取导演、主演等信息
info = processing(infos) # 处理导演、主演等信息
score = div.xpath('./div[@class="bd"]/div/span[2]/text()') # 获取电影评分
evaluation = div.xpath('./div[@class="bd"]/div/span[4]/text()') # 获取评价人数
# 获取电影总结文字
summary = div.xpath('./div[@class="bd"]/p[@class="quote"]/span/text()')
print('电影名称:',name)
print('导演与演员:',info)
print('电影评分:',score)
print('评价人数:',evaluation)
print('电影总结:',summary)
print('--------分隔线--------')
if __name__ == '__main__':
for i in range(0,250,25): # 每页25为间隔,实现循环,共10页
# 通过format替换切换页码的url地址
url = 'https://movie.douban.com/top250?start={page}&filter='.format(page=i)
get_movie_info(url) # 调用爬虫方法,获取电影信息
time.sleep(random.randint(1,2)) # 等待1至3秒随机时间
|