今天写的一个用爬虫爬猫眼电影top100的完整代码

这个是今天写的一个爬取猫眼电影top100的一个完整的代码

# coding:utf-8
import json
import requests
from bs4 import  BeautifulSoup

def get_one_page(url):
    try:
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}
        Response = requests.get(url,headers=headers)
        if Response.status_code == 200:
            return Response.text
        return None
    except Exception:
        return None


def parse_one_page(html):
    Soup=BeautifulSoup(html,'html.parser',from_encoding='utf-8')
    board_wrapper=Soup.find('dl',class_='board-wrapper')
    dd_wag=board_wrapper.find_all('dd')
    list=[]
    for i in dd_wag:
        rate=i.find('i').get_text(strip=True)
        figure=i.find('a',class_='image-link').find('img',class_='board-img')['data-src']
        movie=i.find('p',class_='name').find('a',attrs={'data-act':'boarditem-click'}).get_text(strip=True)
        cast=i.find('p',class_='star').get_text(strip=True)[3:]
        releasetime=i.find('p',class_='releasetime').get_text(strip=True)[5:]
        mark=i.find('i',class_='integer').string+i.find('i',class_='fraction').get_text(strip=True)
        x = {'rate':rate,
           'figure':figure,
           'movie':movie,
           'cast':cast,
           'releasetime':releasetime,
           'mark':mark
            }
        list.append(x)
    return list

def write_content(content):
    with open('D:/猫眼电影5.txt','a',encoding='utf-8') as f:
        for i in content:
            f.write(json.dumps(i,ensure_ascii=False)+'\n')
        f.close()

if __name__=='__main__':
    for i in range(10):
        html=get_one_page('http://maoyan.com/board/4?offset=%s'%(i*10))
        content=parse_one_page(html)
        write_content(content)
Python爬虫猫眼电影Top100,你可以按照以下步骤进行操作: 1. 首先,定义一个函数get_page(url),用于获取指定URL的HTML源码。这个函数可以使用requests库发送GET请求来获取页面内容。如果返回的状态码为200,表示获取成功,将HTML源码返回;如果状态码不为200,则返回'Crawl Failed'。 2. 在获取HTML源码之后,你需要解析HTML源码来提取所需的电影信息。可以使用正则表达式来匹配HTML源码中的电影排名、名称、主演、上映时间和地区等信息。 3. 创建一个空的DataFrame,用于存储电影信息。DataFrame的列可以分别定义为'Rank'、'Name'、'Actors'、'Date'和'Region'。然后,遍历解析HTML源码后得到的结果列表,将每个电影的信息添加到DataFrame中的相应行和列中。注意在处理演员信息、上映时间和地区字段时要进行相应的处理和清洗。 4. 最后,将DataFrame保存为CSV格式的数据文件,即可得到你所期望的Python爬虫猫眼电影Top100电影信息。你可以使用pandas库的to_csv方法来实现保存。 下面是一个示例代码,演示了如何猫眼电影Top100电影信息并保存为CSV文件: import requests import re import pandas as pd def get_page(url): response = requests.get(url) if response.status_code == 200: return response.text else: return 'Crawl Failed' def parse_html(html): pattern = re.compile('<dd>.*?board-index.*?>(\d )</i>.*?name.*?title="(.*?)".*?star.*?主演:(.*?)</p>.*?releasetime.*?上映时间:(.*?)</p>', re.S) result = re.findall(pattern, html) return result html = get_page('https://maoyan.com/board/4') result = parse_html(html) data = pd.DataFrame([], columns=['Rank', 'Name', 'Actors', 'Date', 'Region']) for i, item in enumerate(result): rank = i + 1 name = item actors = item.strip() temp = item.split('(') if len(temp) == 1: date = temp region = '' else: date = temp region = temp[:-1] data.loc[i] = [rank, name, actors, date, region] data.to_csv('maoyan_top100.csv', index=False) 以上代码将会猫眼电影Top100电影信息,并且保存为名为maoyan_top100.csv的CSV文件。你可以根据实际需求进行修改和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值