python爬虫数据_python爬取数据分析

一.python爬虫使用的模块

1.import requests

2.from bs4 import BeautifulSoup

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

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

1245837-20191102155355696-1386598639.png

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获取数据

1245837-20191031190528558-770027945.png

1245837-20191031190637298-1672968312.png

1245837-20191031192030281-928670355.png

1245837-20191031195925829-623454632.png

例如:

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'])

1245837-20191031204320944-1472094426.png

四. 带参数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'])

# 输出电影名名称

五.保存数据

1245837-20191102145937021-20332290.png

1245837-20191102150014119-337255118.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值