美文网首页
三阶段day26-爬虫介绍

三阶段day26-爬虫介绍

作者: ATM_shark | 来源:发表于2019-02-20 19:15 被阅读0次

爬取猫眼网站的电影信息

爬取页面信息的基本思路是:

1、获取页面信息
2、解析页面信息并匹配自己想要爬取的数据
3、组装获取的数据并保存至本地或者数据库
其中第二步解析页面时,需要充分分析页面的结构和信息来源,这也是能否爬取到信息最关键的准备。需要分析信息的来源是js渲染出来的还是页面本身自带,以便决定爬取信息的方式。

import json
import requests
import re


# 1获取网页
def get_page(url):
    # 伪装浏览器header
    headers = {
        "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)"
    }
    # 获取页面信息html
    response=requests.get(url,headers=headers)
    if response.status_code==200:
        return  response.text
    return 'error with you'


#去空格
def strips(list):
    n_list=[]
    for i in list:
        n_list.append(i.strip())
    return  n_list


# 2解析网页,爬取想要数据并返回
def parse_page(html):
#采用正则表达式匹配
    # 根据网页源代码编写所需内容正则表达式
    # 电影名
    title = re.compile('movieId.*?>.*?<img.*?<img.*?alt="(.*?)" class.*?', re.S)

    #匹配结果是一个列表
    titles=re.findall(title,html)
    strips(titles)

    # 演员
    start=re.compile('<p class="star">(.*?)</p>',re.S)
    starts=re.findall(start,html)
    starts=strips(starts)


    # 上映时间
    time=re.compile('<p class="releasetime">上映时间:(.*?)</p>',re.S)
    times=re.findall(time,html)
    strips(times)

    # 评分
    list=[]
    mark1=re.compile('<i class="integer">(.*?)</i>',re.S)
    marks1=re.findall(mark1,html)
    mark2=re.compile('<i class="fraction">(.*?)</i>',re.S)
    marks2 = re.findall(mark2, html)
    for i in range(len(marks1)):
        list.append(marks1[i]+(marks2[i]))
    strips(list)


    # 图片链接
    picture=re.compile('movieId.*?>.*?<img.*?<img.*?data-src="(.*?)" alt.*?', re.S)
    pictures=re.findall(picture,html)
    strips(pictures)

    # 保存图片
    for img in strips(pictures):
        save_img(img)

    # 组合列表
    result_list=[]
    for i in range(len(titles)):
        item={}
        item['title']=titles[i]
        item['start']=starts[i]
        item['time']=times[i]
        item['mark']=list[i]
        item['picture']=pictures[i]
        result_list.append(item)
    return  result_list



# 3写入保存json数据
def save_json(dict):
    # 将数据编码成json格式
    result_json_str=json.dumps(dict,ensure_ascii=False)
    with open('films.json','w',encoding='utf-8') as f:
        f.write(result_json_str)

#获取图片页面
def get_pic(url):
    # 伪装浏览器header
    headers = {
        "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)"
    }

    response=requests.get(url,headers=headers)
    if response.status_code==200:
        return  response.content

# 4保存图片
def save_img(url):
    # 获取图片页面
    img_content = get_pic(url)
    # 取图片名字
    file_name = url.split('/')[-1].split('@')[0]
    # 保存至本地
    with open('./imgs/%s' % file_name, 'wb') as f:
        f.write(img_content)



def main():
    # 1获取单个网页
    url='https://maoyan.com/board/4'
    html=get_page(url)

    # 2返回网页上爬取数据
    result=parse_page(html)
    print(result)

    # 3保存数据至json文件
    save_json(result)

if __name__ == '__main__':
    main()

爬取多个网页

思路:找到类似信息的网址,其一般有规律可循,对多个网页循环执行爬取信息即可

from day01.test2 import get_page, parse_page, save_json


def main_list():

    # 爬取多个网页
    result_list=[]
    for i in range(10):
        id=i*10
        # 组装域名
        url='https://maoyan.com/board/4?offset=%d' %id
        # 获取网页信息
        html=get_page(url)
        # 解析网页,爬取信息,组装数据
        result=parse_page(html)
        # 添加至一个列表中
        result_list.extend(result)
        print(i)
        print(result)
    # 保存至本地,并完成数据的格式转换
    save_json(result_list)

    return result_list

main_list()

相关文章

  • 三阶段day26-爬虫介绍

    爬取猫眼网站的电影信息 爬取页面信息的基本思路是: 1、获取页面信息2、解析页面信息并匹配自己想要爬取的数据3、组...

  • 爬虫入门基础

    Day01 一、爬虫介绍 什么是爬虫 Python爬虫的优势 Python爬虫需要掌握什么 爬虫与反爬虫与反反爬虫...

  • 01-认识爬虫

    一、爬虫介绍 什么是爬虫 Python爬虫的优势 Python爬虫需要掌握什么 爬虫与反爬虫与反反爬虫三角之争 网...

  • Python 网络爬虫(一)

    网络爬虫的基本介绍 学习爬虫,我想主要从以下几个方面来切入 -爬虫的原理? -爬虫的作用? -爬虫的实现? -爬虫...

  • Python网络爬虫

    Python开发简单爬虫(Python2.X版本,Eclipse工具) 一、爬虫介绍 爬虫调度端:启动、停止爬虫,...

  • 爬虫介绍

    一、爬虫介绍: 什么是爬虫? 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程。 哪些语言可以...

  • 爬虫介绍

    爬虫前奏 爬虫的实际例子: 搜索引擎(百度、谷歌、360搜索等)。 伯乐在线。 惠惠购物助手。 数据分析与研究(数...

  • 爬虫介绍

    培训计划: 爬虫的概念 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一...

  • 爬虫介绍

    爬虫:一段自动从互联网上抓取数据的程序 爬虫的架构: 爬虫由5个部分组成:调度器,url管理器,网页下载器,网页解...

  • 爬虫介绍

    一、为什么学习爬虫? 处于大数据时代: 企业产生的数据: 大型的公司有大量的用户,每天都会产生大量的数据, 大公司...

网友评论

      本文标题:三阶段day26-爬虫介绍

      本文链接:https://www.haomeiwen.com/subject/apwalqtx.html