python爬虫,爬取猫眼电影top100

import requests
from bs4 import BeautifulSoup

url_list = []
all_name = []
all_num  = []
all_actor = []
all_score = []

class Product_url():      # 这个地方传入的url是 https://maoyan.com/board/4?offset=

    global url_list
    def __init__(self, url):
        self.url = url
        for x in range(0, 10):
            one_url = self.url + str(x*10)       # 简单暴力的拼接字符串,储存下top100的是个url
            url_list.append(one_url)

class Get_one_page():
    def __init__(self, url, headers):
        self.url = url
        self.headers = headers

    def get_response(self):
        response = requests.get(self.url, headers = self.headers)
        return response.text

# 这个类用来 进行抓取
class Spider():

    def __init__(self, html):
        self.html = html

    global all_name     # 电影名字
    def get_name(self):
        soup = BeautifulSoup(self.html, ‘lxml‘)
        for html_name in soup.select(‘.name‘):
            all_name.append(html_name.get_text())

    global all_num    # 所有评分
    def get_num(self):
        soup = BeautifulSoup(self.html, ‘lxml‘)
        for html_num in soup.select(‘.board-index‘):
            all_num.append(html_num.get_text())

    global all_actor     # 演员
    def get_actor(self):
        soup = BeautifulSoup(self.html, ‘lxml‘)
        for html_actor in soup.select(‘.star‘):
            all_actor.append(html_actor.get_text().strip())      #strip() 去除了\n

    global all_score
    def get_score(self):
        soup = BeautifulSoup(self.html, ‘lxml‘)
        for html_score_integer in soup.select(‘.integer‘):    # 网页里评分是分为两部分的,整数和小数
            for html_score_fraction in soup.select(‘.fraction‘):
                all_score.append(html_score_integer.get_text() + html_score_fraction.get_text()) # 把整数和小数部分连接起来

if __name__ == ‘__main__‘:
    filename = ‘猫眼电影top100.txt‘
    with open(filename, ‘w‘) as file_object:
        file_object.write("猫眼电影top100")

    file_handle = open(‘猫眼电影top100.txt‘, ‘a+‘)
    file_handle.write("\nsadas")

    headers = {
        ‘User-Agent‘:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 ‘
        +‘(KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36‘
    }
    a_product = Product_url(‘https://maoyan.com/board/4?offset=‘)
    for n in range(0, 10):
        one_page = Get_one_page(url_list[n], headers)
        html = one_page.get_response()

        one_spider = Spider(html)
        one_spider.get_actor()
        one_spider.get_score()
        one_spider.get_num()
        one_spider.get_name()

    for n in range(0, 100):
        num = ‘ ‘.join(all_num[n])
        actor = ‘ ‘.join(all_actor[n])
        name = ‘ ‘.join(all_name[n])
        score = ‘ ‘.join(all_score[n])
        file_handle = open(‘猫眼电影top100.txt‘, ‘a+‘)
        file_handle.write(‘\n‘ +‘  ‘ + num +‘ ‘ + name +‘  ‘ + actor + ‘  ‘ + score)
        file_handle.close()

原文地址:https://www.cnblogs.com/dairuiquan/p/10202309.html

时间: 2024-09-29 16:46:49

python爬虫,爬取猫眼电影top100的相关文章

python应用-爬取猫眼电影top100

import requests import re import json import time from requests.exceptions import RequestException def get_one_page(url): try: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.368

# [爬虫Demo] pyquery+csv爬取猫眼电影top100

目录 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 代码君 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 https://maoyan.com/board/4?offset=0 翻页操作只会改变offset偏移量,每部电影的信息都在dd标签内,使用pyquery库中的css选择器直接解析页面 代码君 css选择器直接选择和使用find()方法的区别:find()用于选择子节点,因此限定了选择的区域,速度可能要快些,直接传入''选择器可能

python爬取猫眼电影top100排行榜

爬取猫眼电影TOP100(http://maoyan.com/board/4?offset=90)1). 爬取内容: 电影名称,主演, 上映时间,图片url地址保存到mariadb数据库中;2). 所有的图片保存到本地/mnt/maoyan/电影名.png 代码: import re import pymysql as mysql from urllib import request from urllib.request import urlopen u = 'root' p = 'root'

爬虫实战01——爬取猫眼电影top100榜单

#需求:抓取猫眼电影TOP100的电影名称.时间.评分.图片等信息,提取的结果会以文件的形式保存下来 import requests import time from lxml import etree import json import csv import codecs class MaoYanTop100Spider: #存储电影详情页的url film_page_url_list = [] #存储每个的电影信息 #film_info = {} film_info_list = [] #

python爬取猫眼电影top100

最近想研究下python爬虫,于是就找了些练习项目试试手,熟悉一下,猫眼电影可能就是那种最简单的了. 1 看下猫眼电影的top100页面 分了10页,url为:https://maoyan.com/board/4?offset=0 我们发起请求,得到相应: 我们 我使用的是requests库,这是一个第三方的库. 2 利用正则解析爬取下的页面 当然你也可以使用xpath和bs4. 我们先看一下网页的源代码: 然后根据代码写出要匹配的正则,然后对匹配出来的数据做解析: 3 将抓到的数据写入本地文件

使用requests爬取猫眼电影TOP100榜单

Requests是一个很方便的python网络编程库,用官方的话是"非转基因,可以安全食用".里面封装了很多的方法,避免了urllib/urllib2的繁琐. 这一节使用requests库对猫眼电影的TOP100榜进行抓取. 1 获得页面. 首先确定要爬取的url为http://maoyan.com/board/4,通过requests模块,打印出页面的信息 def get_a_page(url): try: response = requests.get(url) if respon

Python爬虫实战之Requests+正则表达式爬取猫眼电影Top100

import requests from requests.exceptions import RequestException import re import json # from multiprocessing import Pool # 测试了下 这里需要自己添加头部 否则得不到网页 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Ge

爬虫练习 | 爬取猫眼电影Top100

#coding=utf-8 _date_ = '2018/12/9 16:18' import requests import re import json import time def get_one_page(url): headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537

Python爬虫爬取豆瓣电影名称和链接,分别存入txt,excel和数据库

前提条件是python操作excel和数据库的环境配置是完整的,这个需要在python中安装导入相关依赖包: 实现的具体代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- import urllibimport urllib2import sysimport reimport sslimport openpyxlimport MySQLdbimport time #from bs4 import BeautifulSoup #修改系统默认编码为utf-8