• python爬取数据分析


    一.python爬虫使用的模块

      1.import requests

      2.from bs4 import BeautifulSoup

      3.pandas 数据分析高级接口模块

    二. 爬取数据在第一个请求中时, 使用BeautifulSoup  

    import requests
    # 引用requests库
    from bs4 import BeautifulSoup
    # 引用BeautifulSoup库
    res_movies = requests.get('https://movie.douban.com/chart')
    # 获取数据
    bs_movies = BeautifulSoup(res_movies.text,'html.parser')
    # 解析数据
    list_movies= bs_movies.find_all('div',class_='pl2')
    # 查找最小父级标签
    list_all = []
    # 创建一个空列表,用于存储信息
    for movie in list_movies:
    tag_a = movie.find('a')
    # 提取第0个父级标签中的<a>标签
    name = tag_a.text.replace(' ', '').replace(' ', '')
    # 电影名,使用replace方法去掉多余的空格及换行符
    url = tag_a['href']
    # 电影详情页的链接
    tag_p = movie.find('p', class_='pl')
    # 提取父级标签中的<p>标签
    information = tag_p.text.replace(' ', '').replace(' ', '')
    # 电影基本信息,使用replace方法去掉多余的空格及换行符
    tag_div = movie.find('div', class_='star clearfix')
    # 提取父级标签中的<div>标签
    rating = tag_div.text.replace(' ', '').replace(' ', '')
    # 电影评分信息,使用replace方法去掉多余的空格及换行符
    list_all.append([name,url,information,rating])
    # 将电影名、URL、电影基本信息和电影评分信息,封装为列表,用append方法添加进list_all
    print(list_all)
    # 打印

     三.当数据不在第一个请求中时, 使用network获取数据

      

     

     

     例如:

    import requests
    from bs4 import BeautifulSoup

    res = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=71746668539504502&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&w=%E5%91%A8%E6%9D%B0%E4%BC%A6&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0')
    res_json = res.json()
    songs = res_json['data']['song']['list']
    for i in range(len(songs)):
    print(songs[i]['name'])

     四. 带参数param可以请求不同数据, 带header可以伪装为浏览器

    import requests

    # 引用requests模块

     for i in range(0,3):

    url = 'https://movie.douban.com/j/search_subjects'

    header = {
    'Origin': 'https://y.qq.com',
    'Referer': 'https://y.qq.com/portal/search.html',
    'Sec-Fetch-Mode': 'cors',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
    }

    param = {'type': 'movie',

    'tag': '热门',

    'sort': 'recommend',

    'page_limit': '20',

    'page_start': i*20}

    # print(param)

    res_movie = requests.get(url,params=param, headers=header)

    # 调用get方法,下载电影列表

    json_movie = res_movie.json()

    # 使用json()方法,将response对象,转为列表/字典

    # print(json_movie)

    list_movies = json_movie['subjects']

    # 一层一层地取字典,获取电影名称

    for comment in list_movies:

    # list_movies,comment是它里面的元素

    print(comment['title'])

    # 输出电影名名称

    五.保存数据

     



  • 相关阅读:
    Jemeter编写脚本(五类常见请求)
    正则表达式-问号的四种用法
    Python正则表达式操作指南(转)
    Python文件和目录操作方法大全(含实例)
    Python os.walk() 方法
    Python文件和流
    Python pip常用指令
    Windows7下配置JMeter安装环境
    postman进行http接口测试
    递归Python文件目录操作
  • 原文地址:https://www.cnblogs.com/fanshudada/p/11704830.html
Copyright © 2020-2023  润新知