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.codes.ok:
            return resp.text
        else:
            return None
    except RequestException:
        return None

# 页面解析
def parse_one_page(html):
    pattern = re.compile('<dd>.*?board-index.*?>(\\d+)</i>.*?data-src="(.*?)"'
                         '.*?name"><a.*?">(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'
                         '.*?</dd>', re.S)
    items = re.findall(pattern, html)  # result is a list,made up of tuples
    for item in items:
        # 生成字典
        yield {
            'index': item[0],
            'img_url': item[1],
            'title': item[2],
            'stars': item[3][3:],
            'releasetime': item[4],
        }

# 将爬取到的内容写入到文件中
def write_file(content):
    with open('content.txt', 'a', encoding='utf-8') as f:
        str_content = json.dumps(content, ensure_ascii=False)  # 转换成字符串
        f.write(str_content + '\n')
        f.close()

# 主函数
def main(offset):
    url = "https://maoyan.com/board/6/?offset=" + str(offset)
    html = get_one_page(url)
    for item in parse_one_page(html):
        write_file(item)
        print(item)

if __name__ == "__main__":
    # 请求4次
    for i in range(5):
        main(i * 10)

原文地址:https://www.cnblogs.com/qikeyishu/p/10758081.html

时间: 2024-10-10 07:51:29

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

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) AppleWe

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

Python使用asyncio+aiohttp异步爬取猫眼电影专业版

asyncio是从pytohn3.4开始添加到标准库中的一个强大的异步并发库,可以很好地解决python中高并发的问题,入门学习可以参考官方文档 并发访问能极大的提高爬虫的性能,但是requests访问网页是阻塞的,无法并发,所以我们需要一个更牛逼的库 aiohttp ,它的用法与requests相似,可以看成是异步版的requests,下面通过实战爬取猫眼电影专业版来熟悉它们的使用: 1. 分析 分析网页源代码发现猫眼专业版是一个动态网页,其中的数据都是后台传送的,打开F12调试工具,再刷新网

# [爬虫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()用于选择子节点,因此限定了选择的区域,速度可能要快些,直接传入''选择器可能

爬取猫眼电影

爬去猫眼电影正字热映电影榜单的前五页: #爬取猫眼电影正在热映前5面的所有电影 import requests from requests import RequestException import re def get_one_page(url): header ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.8

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

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