Requests+正则表达式 爬取猫眼电影

代码:

import re
import json
from multiprocessing import Pool
import requests
from requests.exceptions import RequestException

basic_url = ‘http://maoyan.com/board/4?offset=%d‘
headers = {
    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36‘,
}
file = open("maoyan_movies.txt", ‘a‘, encoding="utf-8")

def get_page(url):
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == requests.codes.ok:
            return response.text
        else:
            return None
    except RequestException:
        return None

def parse_page(content):
    pattern = re.compile(
        ‘<dd>.*?board-index.*?>(\d+)</i>‘
        ‘.*?<img data-src="(.*?)"‘
        ‘.*?class="name"><a.*?>(.*?)</a>‘
        ‘.*?class="star">(.*?)</p>‘
        ‘.*?class="releasetime">(.*?)</p>‘
        ‘.*?class="score"><i class="integer">(.*?)</i><i class="fraction">(.*?)</i>‘
        ‘.*?</dd>‘, re.S)
    items = pattern.findall(content)
    for item in items:
        yield {
            ‘id‘: item[0],
            ‘image‘: item[1],
            ‘name‘: item[2].strip(),
            ‘actor‘: item[3].strip()[3:],
            ‘releasetime‘: item[4][5:],
            ‘score‘: item[5] + item[6],
        }

def save_to_file(content):
    json.dump(content, file, ensure_ascii=False)
    file.write(‘\n‘)

def get_page_movies(offset):
    ‘‘‘
        获取一页的电影信息
        offset用来构建完整的网页url,以10为最小单位
    ‘‘‘
    step = 10
    url = basic_url % (step * offset)
    html = get_page(url)
    for movie_info in parse_page(html):
        save_to_file(movie_info)

# 获取猫眼电影top100的电影信息: 排名,图片url,电影名,主演,上映日期,评分
def get_top_100_movies():
    offset_list = [i for i in range(10)]
    pool = Pool(processes=4)
    pool.map(get_page_movies, offset_list)
    pool.close()
    pool.join()

if __name__ == "__main__":
    get_top_100_movies()
时间: 2024-08-10 14:52:33

Requests+正则表达式 爬取猫眼电影的相关文章

python爬虫知识点总结(九)Requests+正则表达式爬取猫眼电影

一.爬取流程 二.代码演示 #-*- coding: UTF-8 -*- #_author:AlexCthon #mail:[email protected] #date:2018/8/3 import requests from multiprocessing import Pool # 进程池,用来实现秒抓 from requests.exceptions import RequestException import re import json def get_one_page(url):

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

Requests+正则表达式爬取猫眼电影

1 # encoding:utf-8 2 from requests.exceptions import RequestException 3 import requests 4 import re 5 import json 6 from multiprocessing import Pool 7 8 def get_one_page(url): 9 try: 10 response = requests.get(url) 11 if response.status_code == 200:

14-Requests+正则表达式爬取猫眼电影

'''Requests+正则表达式爬取猫眼电影TOP100''''''流程框架:抓去单页内容:利用requests请求目标站点,得到单个网页HTML代码,返回结果.正则表达式分析:根据HTML代码分析得到电影的名称.主演.上映时间.评分.图片链接等信息.保存至文件:通过文件的形式保存结果,每一部电影一个结果一行Json字符串.开启循环及多线程:对多页内容遍历,开启多线程提高抓取速度.'''import requestsimport refrom requests.exceptions impor

正则表达式爬取猫眼电影

正则表达式爬取猫眼电影Top100 import requests import re,json from multiprocessing import Pool def get_one_page(url): response = requests.get(url) return response.text def parse_one_page(html): pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?dat

Requests+正则表达式爬取猫眼TOP100电影

需要着重学习的地方:(1)爬取分页数据时,url链接的构建(2)保存json格式数据到文件,中文显示问题(3)线程池的使用(4)正则表达式的写法 import requests from requests.exceptions import RequestException import re import json from multiprocessing import Pool # 抓取单页内容 def get_one_page(url): try: response = requests.

requests库爬取猫眼电影“最受期待榜”榜单 --网络爬虫

目标站点:https://maoyan.com/board/6 # coding:utf8 import requests, re, json from requests.exceptions import RequestException # from multiprocessing import Pool # 获取页面 def get_one_page(url): try: resp = requests.get(url) if resp.status_code == requests.co

Requwsts+正则表达式爬取猫眼电影Top100

流程框架: 抓取单页内容:利用requests请求目标站点,得到单个网页HTML代码,返回结果. 正则表达式分析:根据HTML代码分析得到电影和名称.主演.上映时间.评分.图片链接等信息. 开启循环及多线程:对多页内容遍历,开启多线程提高抓取速度. 保存至文件:通过文件的形式将内容结果保存,每一部电影一个结果一行Json字符串. 原文地址:https://www.cnblogs.com/779084229yyt/p/9692010.html

使用xpath爬取猫眼电影排行榜

最近在学习xpath,在网上找资料的时候,发现一个新手经常拿来练手的项目,爬取猫眼电影前一百名排行的信息,很多都是跟崔庆才的很雷同,基本照抄.这里就用xpath自己写了一个程序,同样也是爬取猫眼电影,获取的信息是一样的,这里提供一个另外的解法. 说实话,对于网页信息的匹配,还是推荐用xpath,虽然正则确实也能达到效果,但是语句过于繁琐,一不注意就匹配不出东西,特别对于新手,本身就不熟悉正则表达式,错了都找不出来,容易劝退.正则我一般用于在处理文件,简直神器. 下面贴代码. import req