Python爬取猫眼电影排行

import requests
import pyquery


def crawl_page(url: str) -> None:
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/72.0.3626.121 Safari/537.36',
    }
    response = requests.get(url, headers=headers)
    parse_page(response.text)


def parse_page(source_code: str) -> None:
    html = pyquery.PyQuery(source_code)
    dd_elements = html('.board-wrapper dd')
    for dd_element in dd_elements.items():
        data = {
            '排名': dd_element.find('i.board-index').text(),
            '电影名': dd_element.find('a.image-link').attr('title'),
            '主演': dd_element.find('p.star').text().split(':')[1],
            '上映时间': dd_element.find('p.releasetime').text().split(':')[1],
            '评分': dd_element.find('p.score').text(),
        }
        print(data)
        save_data(data)


def save_data(data: dict) -> None:
    data = str(data)
    with open('MaoYan.txt', 'a+', encoding='utf8') as f:
        f.write(data+'\n')
    return None


def main():
    for i in range(0, 100, 10):
        url = 'https://maoyan.com/board/4?offset={}'.format(i)
        crawl_page(url)


if __name__ == '__main__':
    main()

转载于:https://www.cnblogs.com/malinqing/p/11318341.html

Python中,你可以使用requests库来获取网页内容,然后BeautifulSoup库来解析HTML并提取你需要的数据。对于猫眼电影这样的网站,首先需要检查其API是否开放,如果直接抓取可能会有反爬策略。如果没有API,可以尝试使用模拟浏览器访问的方式。 以下是一个简单的步骤说明: 1. 安装所需库: ``` pip install requests beautifulsoup4 pandas ``` 2. 使用`requests.get()`发送HTTP请求,并设置User-Agent以避免被识别为机器人: ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } url = "https://movie.douban.com/j/chart/top_list" # 猫眼电影排行榜URL(这里假设是这个) response = requests.get(url, headers=headers) ``` 3. 解析响应内容: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') data = soup.find_all('div', class_='item') # 找到电影信息元素 ``` 4. 提取数据,这里假设每个电影的信息包含标题、评分等字段,可能需要自定义处理: ```python movie_data = [] for item in data: title = item.find('span', class_='title').text rating = item.find('span', class_='rating_num').text # 其他字段... movie_data.append([title, rating]) ``` 5. 将数据保存为CSV文件: ```python import csv with open('movie_data.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(['Title', 'Rating']) # 写入表头 writer.writerows(movie_data) ``` 请注意,实际操作中可能需要根据猫眼电影的具体网页结构进行调整。此外,频繁抓取可能会对网站服务器造成压力,所以务必遵守网站的robots.txt规则或者申请API授权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值