目录
数据准备:
1、安装好request库,lxml库
2、URL地址:
https://movie.douban.com/top250
3、数据要存放的文件夹位置(注意每个人放的不一样,下面是我放的位置)
D:\code\movie4.txt
步骤及具体代码如下:
第一步 导包
# 导包
import requests
from lxml import etree
第二步 发起请求,设置编码格式
设置编码格式的目的是把r.text的内容变为汉字展示。 到这一步可以执行看一下,确认r.text内容里没有乱码。 如果出现乱码,就需要修改成其他编码格式。
# 发起get请求
url='https://movie.douban.com/top250'
r=requests.get(url,headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'})
r.encoding='utf-8'
print(r.text)
第三步 调用etree和xpath方法转换数据
到这一步执行看一下,转换的数据是否为汉字
# 用etree方法转换数据
xp=etree.HTML(r.text)
remark_num=xp.xpath('//ol/li/div/div/div/div/span/text()') # 参加评论的人数
remark_content=xp.xpath('//ol/li/div/div/div/p/span/text()') # 评论内容
movie_name=xp.xpath('//ol/li/div/div/div/a/span/text()') # 电影名字
print(remark_num)
print(remark_content)
print(movie_name)
第四步 用for循环和zip函数把数据写入文件
这里【\n】表示换行符,zip( )函数可以把多个可迭代对象打包成元组
for r1,r2,r3 in zip(remark_num,movie_name,remark_content):
with open(f'D:/code/movie4.txt','a',encoding='utf-8') as f:
f.write(r1)
f.write('\n')
f.write(r2)
f.write('\n')
f.write(r3)
最后看一下代码执行的效果