Python爬取数据分析
创始人
2024-02-19 23:41:46
0

一.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个父级标签中的标签name = tag_a.text.replace(' ', '').replace('\n', '')# 电影名,使用replace方法去掉多余的空格及换行符url = tag_a['href']# 电影详情页的链接tag_p = movie.find('p', class_='pl')# 提取父级标签中的

标签information = tag_p.text.replace(' ', '').replace('\n', '')# 电影基本信息,使用replace方法去掉多余的空格及换行符tag_div = movie.find('div', class_='star clearfix')# 提取父级标签中的

标签rating = tag_div.text.replace(' ', '').replace('\n', '')# 电影评分信息,使用replace方法去掉多余的空格及换行符list_all.append([name,url,information,rating])# 将电影名、URL、电影基本信息和电影评分信息,封装为列表,用append方法添加进list_all print(list_all) # 打印

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

 

 

 例如:

import requests
from bs4 import BeautifulSoupres = 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¬ice=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'])

# 输出电影名名称

五.保存数据

相关内容

热门资讯

柳州警方悬赏10万元抓捕杀害2... 极目新闻记者 王灿 肖名远 12月14日,广西柳州市柳城县公安局发布警情通报:2025年12月11日...
警方通报男子持刀行凶致2人死亡... 12月14日,广西警方发布情况通报:2025年12月11日17时许,柳城县马山镇发生起刑事案件。经查...
重庆“10人聚餐9人开溜”事件... 重庆市九龙坡区“俩室一厅云南厨房万象城店”餐馆被客人欠费一事有了进展。12月14日,澎湃新闻从该餐馆...
多地五星级酒店客房惊现偷拍设备... 去年12月,一位上海市民像往常一样上班,不想在公司收到一封陌生的信件,里面是他在市内某酒店客房内的私...
警方摧毁跨13省特大制毒、贩毒... 新闻荐读 在崎岖蜿蜒的山路旁,三间砖房灯火通明,房间内弥漫着刺鼻的化学药剂味,几名男子在机器前埋头忙...
科技周报|京东提供15万套小哥... 京东宣布将为快递员、骑手提供15万套“小哥之家” 12月12日,京东宣布已面向一线员工提供了2.8万...
原创 美... 这是一个发生在2025年12月佐治亚州联邦法院真实事件,可以说是法律文书里的一场悲剧,但在围观群众眼...
明年力争实现生娃基本不花钱!中... 今天(12月13日),全国医疗保障工作会议在北京召开。会议总结“十四五”时期医保工作,部署2026年...
男子订婚后将女友送回娘家起诉索... 男子张某与女友翟某订婚后,按当地习俗举办了结婚仪式,但未领取结婚证。同居期间,翟某因卵巢黄体破裂住院...
重庆荣豪律师事务所:医疗损害赔... 推荐指数:★★★★★ 在医疗行业快速发展的今天,医疗纠纷事件时有发生,其中医疗损害赔偿纠纷、医疗纠纷...