regarder un film. . .
- Le type et la durée de la préférence d'une personne pour regarder des films sont liés à l'âge. Les thèmes et les types de films populaires ont une couverture plus large dans une certaine mesure et ont une valeur de référence plus élevée.
- La plate-forme de cinéma Maoyan est une plate-forme relativement bonne avec une valeur de référence globale
Quiconque connaît les robots d'exploration connaît l'idée de l'analyse des données Web et ne décrit plus le
code. Après tout , le code n'est pas facile à utiliser. Il
doit être intégré dans un fichier programme pouvant être utilisé directement par des gens ordinaires.
Réduire la difficulté d'utilisation de
pyinstaller Cette bibliothèque peut encapsuler du code Python dans des fichiers .exe sur la plate-forme Windows Utiliser
Processus d'empaquetage: les fichiers Python .py sont empaquetés dans des fichiers .exe (plateforme Windows, python 3.x)
Collez le code ci-dessous; si vous ne comprenez pas, veuillez lire attentivement les commentaires, si cela ne fonctionne pas, apprenez vous-même les bases de l'exploration
# -*- coding: utf-8 -*-
"""
@Time : 2020/7/26 9:51
@File : maoyan.py
@Software: PyCharm
"""
import os
import time
import random
import requests
from lxml import etree
from fake_useragent import UserAgent
class MaoyanSpider(object):
def __init__(self):
self.url = 'https://maoyan.com/films?showType=2&offset={}'
ua = UserAgent(verify_ssl=False)
for i in range(1, 3):
self.headers = {
'User-Agent': ua.random,
}
# 添加计数(页数)
self.page = 1
# 获取页面
def get_page(self, url):
# random.choice一定要写在这里,每次请求都会随机选择
res = requests.get(url, headers=self.headers)
res.encoding = 'utf-8'
html = res.text
self.parse_page(html)
# 解析页面
def parse_page(self, html):
# 创建解析对象
parse_html = etree.HTML(html)
# 基准xpath节点对象列表
dd_list = parse_html.xpath('//dl[@class="movie-list"]//dd')
print(len(dd_list))
movie_dict = {
}
# 依次遍历每个节点对象,提取数据
for dd in dd_list:
name = dd.xpath('.//div[@class="movie-hover-title"]//span[@class="name noscore"]/text()')[0].strip()
star = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][3]/text()')[1].strip()
type = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][2]/text()')[1].strip()
dowld = dd.xpath('.//div[@class="movie-item-hover"]/a/@href')[0].strip()
# print(movie_dict)
movie = '''【即将上映】
电影名字: %s
主演:%s
类型:%s
详情链接:https://maoyan.com%s
=========================================================
''' % (name, star, type, dowld)
print(movie)
spider.file(movie)
# 保存 最新猫眼电影.doc 文件
def file(self, movie):
# 判断 最新猫眼电影.doc 文件是否存在 不存在则创建
filename = "./最新猫眼电影.doc"
if not os.path.exists(filename):
os.system(r"cd.>{}".format(filename))
f = open('./最新猫眼电影.doc', 'a', encoding='utf-8')
f.write(str(movie))
print(str(movie))
f.close()
# 主函数
def main(self):
for offset in range(0, 90, 30):
url = self.url.format(str(offset))
self.get_page(url)
print(url)
print('第%d页完成' % self.page)
# 请求延时
time.sleep(random.randint(1, 3))
self.page += 1
if __name__ == '__main__':
spider = MaoyanSpider()
spider.main()