sksksjsssjsnsn 2022-08-14 17:51 采纳率: 22.2%
浏览 26
已结题

实现不了翻页效果该怎么弄

目标网站:https://sc.chinaz.com/yinxiao/
需求:
1、翻页爬网页上的音乐名字,音乐链接
2、保存到csv
import requests
from lxml import etree
import csv
start = int(input('请输入你的起始页:'))
end = int(input('请输入你的结束页:'))
for k in range(start, end+1):
url = 'https://sc.chinaz.com/yinxiao/index_{}.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}
response = requests.get(url=url, headers=headers)
response.encoding = 'utf-8'
data = response.text

print(data)

html = etree.HTML(data)
div_tag = html.xpath('//div[@class="right-head"]/a')
lis = []
for a in div_tag:
    name = a.xpath('./p/text()')
    href = a.xpath('./@href')
    # print(name, href)
    name = [s.strip() for s in name]
    for i in zip(name, href):
        dic = {}
        dic['name'] = i[0]
        dic['href'] = 'https://sc.chinaz.com'+i[1]
        lis.append(dic)
        print(lis)
        with open('音效.csv', 'w', encoding='utf-8', newline='') as f:
            write = csv.DictWriter(f, fieldnames=['name', 'href'])
            write.writeheader()
            write.writerows(lis)
  • 写回答

2条回答 默认 最新

  • 天际的海浪 2022-08-14 19:04
    关注

    你题目的解答代码如下:

    import requests
    from lxml import etree
    import csv
    start = int(input('请输入你的起始页:'))
    end = int(input('请输入你的结束页:'))
    lis = []  #放到所有循环上边
    for k in range(start, end+1):
        url = f'https://sc.chinaz.com/yinxiao/index_{k}.html'  #改下
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}
        response = requests.get(url=url, headers=headers)
        response.encoding = 'utf-8'
        data = response.text
        # print(data)
        html = etree.HTML(data)
        div_tag = html.xpath('//div[@class="right-head"]/a')
        for a in div_tag:
            name = a.xpath('./p/text()')
            href = a.xpath('./@href')
            # print(name, href)
            name = [s.strip() for s in name]
            for i in zip(name, href):
                dic = {}
                dic['name'] = i[0]
                dic['href'] = 'https://sc.chinaz.com'+i[1]
                lis.append(dic)
    print(lis)
    #放到所有循环之后
    with open('音效.csv', 'w', encoding='utf-8', newline='') as f:
        write = csv.DictWriter(f, fieldnames=['name', 'href'])
        write.writeheader()
        write.writerows(lis)
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月22日
  • 已采纳回答 8月14日
  • 创建了问题 8月14日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失