使用requests、BeautifulSoup模块,在网上爬取信息。有的网页可以直接爬取到,有些则需要分步加载,这时就需要使用network进行分析找到信息对应的请求。

有的会反爬虫,则需要添加headers信息,user-agent会存放访问网站的浏览器,我们需要伪装成浏览器进行爬取。

有时候返回的信息是个json文件,则需要将json转换成dict字典。

1.爬取周杰伦歌曲

示例1:需要用到request headers,network,query string parameters,json,csv,openpyxl等知识

import requests,openpyxlwb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'song'
sheet['A1'] = '歌曲名'
sheet['B1'] = '所属专辑'
sheet['C1'] = '播放时长'
sheet['D1'] = '播放链接'# 获取前五页的歌曲
url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp'
headers = {
'origin': 'https://y.qq.com',
'referer': 'https://y.qq.com/portal/search.html',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
for i in range(5):params = {'ct': '24','qqmusic_ver': '1298','new_json': '1','remoteplace': 'txt.yqq.song','searchid': '71605763533364392','t': '0','aggr': '1','cr': '1','catZhida': '1','lossless': '0','flag_qc': '0','p': str(i+1),'n': '10','w': '周杰伦','g_tk_new_20200303': '322019968','g_tk': '322019968','loginUin': '156883371','hostUin': '0','format': 'json','inCharset': 'utf8','outCharset': 'utf-8','notice': '0','platform': 'yqq.json','needNewCode': '0'   }res_music = requests.get(url,headers=headers,params=params)json_music = res_music.json()list_music = json_music['data']['song']['list']for songinfo in list_music:name = songinfo['name']album = songinfo['album']['name']time = songinfo['interval']address = 'https://y.qq.com/n/yqq/song/' + songinfo['mid']songinfolist =[name,album,time,address]sheet.append(songinfolist)
wb.save('Jay Songs.xlsx')

2.爬取豆瓣top250电影

示例:

import openpyxl,csv,requests,bs4
# 找到豆瓣网top250的电影信息:序号,电影名,评分,推荐语,链接,并保存在excel文件中
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'Top250 films'
sheet.append(['序号','电影名','评分','推荐语','链接'])# 获取电影信息,一共10页,每页有25个电影
url = 'https://movie.douban.com/top250?start=0&filter='
# 需要设置浏览器信息,要不然访问会被拒绝
headers = {'Host': 'movie.douban.com','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'none','Sec-Fetch-User': '?1','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
# 第二页的地址为:https://movie.douban.com/top250?start=25&filter=,可见每次变化的数字是 N*25,N从0到9
for i in range(10):url = 'https://movie.douban.com/top250?start=' +str(i*25) + '&filter='res_films = requests.get(url,headers = headers)print(res_films.status_code)bs = bs4.BeautifulSoup(res_films.text,'html.parser')bs = bs.find('ol',class_='grid_view') for titles in bs.find_all('div',class_='item'):# 查找序号num = titles.find('em',class_='').text# 查找电影名title = titles.find('span',class_='title').text# 查找推荐语if titles.find('span',class_='inq') != None:tes = titles.find('span',class_='inq').textelse:tes = ""# 查找评分comment= titles.find('span',class_='rating_num').text# 查找链接ulr_movie = titles.find('a')['href']sheet.append([num,title,comment,tes,ulr_movie])
wb.save('top250films.xlsx')

Python 爬取周杰伦歌曲信息,爬取豆瓣top250的电影,并保存至excel中相关推荐

  1. python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)

    为一线医护人员加油! 为武汉加油! 为中国加油! 为世界加油! 此爬虫是本人参考了了一位前辈的文章,并修改和优化了代码: 1.改为python3环境: 2.优化了抓取的歌曲时长中带一长串小数的问题: ...

  2. Python+Selenium动态网页的信息爬取

    录 一.Selenium 1.1 简介 1.2 配置 二.对百度进行自动化测试 2.1 进入百度搜索界面 2.2 自动填充百度网页的查询关键字并完成自动搜索 三.爬取指定网页的名言 3.1 找到元素 ...

  3. 用Scrapy对豆瓣top250进行电影详细信息爬取

    简述 为了练习简单的Pandas操作,我用Scrapy爬取了豆瓣Top250的电影信息.Top250页面展现的电影信息和具体电影页面所呈现的内容有些不同(比如演员信息),所以爬取总共用了两部分代码.此 ...

  4. Python基础之12306车票信息抓取案例

    Python基础之12306车票信息抓取案例 注:12306上请求网址链接经常变化,需要随时检查更改(我已经修改三遍了),请求的数据也有小几率发生变动,所以也需要检查更改 2018-10-22 第四遍 ...

  5. python调用(百度云、腾讯云)API接口表格识别并保存为excel

    Python表格识别 图像识别具有较高的商业价值,本节主要通过python调用(百度云.腾讯云)API接口表格识别并保存为excel分析表格识别的能力: 提示:需分别申请密钥,在相应位置添加自己密钥即 ...

  6. Python实现淘宝爬取——奶粉销售信息爬取及其数据可视化

    简介 双十一刚过,TB的销售额又创下了新高,我也为2000+亿做出了贡献 恰巧买了一袋德运奶粉,味道还不错.我就在想,接触爬虫也有两个多月了,还没有爬过TB这种经典的网站,借着劲头就爬取了一下TB上奶 ...

  7. Python 爬虫“王者”:微博信息爬取

    这里的微博爬虫,我主要实现的是输入你关心的某个大 V 的微博名称,以及某条微博的相关内容片段,即可自动爬取相关该大 V 一段时间内发布的微博信息和对应微博的评论信息. Cookie 获取 与上面的 B ...

  8. 基于Python的必联网招标信息爬取系统 课程报告+代码

    资源下载地址:https://download.csdn.net/download/sheziqiong/85672637 资源下载地址:https://download.csdn.net/downl ...

  9. 爬取豆瓣TOP250电影并保存为excel文件与db文件,有网页展示哦!

    任务介绍 想网页效果的小伙伴,可以直接拉到最后!!!哈哈哈!!! 基本流程 在豆瓣上通过F12调试,可以看出我们需要爬取的内容在<div class="item">这里 ...

最新文章

  1. mysql 存储过程out,in,inout分别表示什么
  2. SCN Headroom与时光倒流到1988年的Oracle数据库
  3. [SQL] Query mystore start [ERR] 1005 - Can't create table 'mystore.admin' (errno: 150)
  4. GDCM:gdcm::ImageHelper的测试程序
  5. 360手机卫士界面布局学习过程续(一)
  6. How is setModel triggering propery binding
  7. 数据集转换_“2000坐标”成了标配,你还不懂坐标系定义和转换吗?
  8. Android之在ubuntu过滤日志以及ps总结
  9. [css] 请问display:inline-block在什么时候会显示间隙?
  10. Python学习—2048小游戏等4个小练习
  11. 3d 模型换人脸_3D人脸模型月销量上千单 谁在打印,谁在帮打?
  12. matlab无法显示图片
  13. python爬取新浪博客_Python爬取韩寒全部新浪博客
  14. 动态ActionForm
  15. Filter中获取传递参数(解决post请求参数问题)
  16. ANC主动降噪技术的原理
  17. 教程篇(7.0) 10. FortiGate安全 反病毒 ❀ Fortinet 网络安全专家 NSE 4
  18. python爬虫实战-如何批量爬取唯品会商品信息>>>
  19. ps因计算机限制打不开,电脑突然坏了只有打不开PS这是什么原因在线 – 手机爱问...
  20. 数的三次方根(二分方法的运用)

热门文章

  1. zookeeper读书笔记十 zookeeper实现分布式屏障Barriers
  2. 哪个国家程序员最多?不是美国和中国,是这个‘落后’的亚洲国家
  3. 2020年3月笔记本选购记录
  4. WebSocket - 一篇文章读懂websocket
  5. 漫谈游戏中的人工智能
  6. 小米android手机密码忘了怎么解锁,小米5忘记了锁屏密码怎么办 小米5忘记锁屏密码的解决方法...
  7. windows共享文件创建----局域网办公
  8. 在JAVA中 以下程序_在Java中,以下程序的输出结果是()_学小易找答案
  9. 国际布线标准电缆色谱
  10. Linux shell脚本,Linux下的西红柿时间管理法 I