[Python] 纯文本查看 复制代码 import requests
from pyquery import PyQuery as pq
import re
url = 'https://ssr1.scrape.center/'
html = requests.get(url).text
doc = pq(html) # 初始化
items = doc('.el-card').items()
# 字典 items() 方法以列表返回视图对象,是一个可遍历的对象 只读不可修改 不是列表,不支持索引,可以使用 list() 来转换为列表
file = open('movies.txt', 'w', encoding='utf-8')
'''
'w'每次写入文本时都会清空原有文件,将新的写入 wb w+ wb+ 都会覆盖已有文件或创建新文件
'a'追加方式打开,不会覆盖原文件,若无会创建 ab二进制写入 a+读写 ab+二进制读写
'r'只能读取不能写入
'rb'以二进制只读方式打开一个文件,例如音频,视频,图片
'r+'可读可写
'rb+'可读可写二进制文件
'''
for item in items:
# print(item)
# 电影名称
name = item.find('a>h2').text() # 查找a标签下h2标签内容
file.write(f'名称:{name}\n') # 写入换行
# 类别
categories = [item.text() for item in item.find('.categories button span').items()]
file.write(f'类别:{categories}\n')
# 上映时间
publishend_at = item.find('.info:contains(上映)').text() # .info:contains(上映) 获取.info下带有”上映“的内容
publishend_at = re.search('(\d{4}-\d{2}-\d{2})', publishend_at).group(1) if publishend_at and re.search(
'(\d{4}-\d{2}-\d{2})', publishend_at) else None
file.write(f'上映时间:{publishend_at}\n')
# 评分
score = item.find('p.score').text()
file.write(f'评分:{score}\n')
file.write(f'{"=" * 50}\n')
file.close()
|