吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 883|回复: 6
收起左侧

[已解决] python使用BS4爬取酷狗top500存储到指定目录

[复制链接]
lu1108 发表于 2023-3-22 21:44
本帖最后由 lu1108 于 2023-3-23 09:04 编辑

求助大神,我想要把这个数据存储到txt文档,搞了半天,找到了很多实例案例,但是都不是想要的
实现效果就是把data数据里面的rank singer song time改成中文的(下面是两幅代码(文件不知道怎么上传不了,所以就直接复制的代码)第一个是原始的,第二个是已经改好的)然后存储txt到指定目录

import requests
from bs4 import BeautifulSoup
import time
import xlwt

headers = {
    'User-Agent': 'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML,'
                  'like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44'
}

def get_info(url):
    wb_data = requests.get(url, headers=headers)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    ranks = soup.select('span.pc_temp_num')
    titles = soup.select('div.pc_temp_songlist > ul > li > a')
    times = soup.select('span.pc_temp_tips_r > span')

    for rank, title, time in zip(ranks, titles, times):
        data = {
            'rank': rank.get_text().strip(),
            'singer': title.get_text().split('-')[1].strip(),
            'song': title.get_text().split('-')[0].strip(),
            'time': time.get_text().strip()
        }
        print(data)

if __name__ == '__main__':
    urls = ['http://www.kugou.com/yy/rank/home/{} - 8888.html'.format(str(i)) for i in range(1, 2)]
    for url in urls:
        get_info(url)
        time.sleep(1)



import requests
from bs4 import BeautifulSoup
import time
import xlwt

headers = {
    'User-Agent': 'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML,'
                  'like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44'
}


def get_info(url):
    wb_data = requests.get(url, headers=headers)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    ranks = soup.select('span.pc_temp_num')
    titles = soup.select('div.pc_temp_songlist > ul > li > a')
    times = soup.select('span.pc_temp_tips_r > span')

    for rank, title, time in zip(ranks, titles, times):
        data = {
            '排名': rank.get_text().strip(),
            '歌手': title.get_text().split('-')[1].strip(),
            '歌曲': title.get_text().split('-')[0].strip(),
            '时间': time.get_text().strip()
        }
        print(data)


if __name__ == '__main__':
    urls = ['http://www.kugou.com/yy/rank/home/{} - 8888.html'.format(str(i)) for i in range(1, 2)]
    for url in urls:
        get_info(url)
        time.sleep(1)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

撒旦の恶 发表于 2023-3-23 02:47
1.改成这样:def get_info(url,file):
2.print(data)前面加入这句:
[Python] 纯文本查看 复制代码
with open(file, 'a', encoding='utf-8') as f:
            f.write(str(data) + '\n')

3.urls下面添加这句:
[Python] 纯文本查看 复制代码
#保存路径
    file = '你的电脑桌面目录路径/kugou.txt'

4.改成这样:get_info(url,file)
5.你的链接中{}到8888之间有空格检查下

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
lu1108 + 1 + 1 热心回复!
hackerxj + 1 热心回复!

查看全部评分

adx123456 发表于 2023-3-23 04:06
Maiz1888 发表于 2023-3-23 08:48
 楼主| lu1108 发表于 2023-3-23 08:52
撒旦の恶 发表于 2023-3-23 02:47
1.改成这样:def get_info(url,file):
2.print(data)前面加入这句:[mw_shl_code=python,true]with open(fil ...

感谢大神的回答
 楼主| lu1108 发表于 2023-3-23 08:53
adx123456 发表于 2023-3-23 04:06
还有人用bs4????

呜呜,学校教学使用,不是技术员~
adx123456 发表于 2023-3-24 08:05
lu1108 发表于 2023-3-23 08:53
呜呜,学校教学使用,不是技术员~

学校啊    难怪!!!! bs4都几年不更新了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表