桂花雪顶乌龙加花生粒 2022-01-30 21:37 采纳率: 100%
浏览 59
已结题

Python爬虫# 将url携带的参数写成循环代入,如何将每次不同参数爬取到的结果依次保存到同一张excel

礼貌!快来指点指点!零基础自学.附上代码求指点🙏

import requests
from lxml import etree
import xlwt

urls = ('9787501586387', '9787501586448', '9787544258210')
list1 = []
for url in urls:
    url0 = 'https://search.dangdang.com/?key={}'.format(url)
    print(url0)

url = url0

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
}
# 获取响应

respond = requests.get(url, headers=headers)
# respond.encoding=''
print(respond.status_code)
html = respond.text
# with open('dang.html','w') as f:
#     f.write(respond.text)02.

htmls = etree.HTML(html)
ul = htmls.xpath('//*[@id="search_nature_rg"]/ul/li[1]')  # 获取书单
# print(ul)
for li in ul:
    book_name = li.xpath("./p[1]/a[1]/@title")  # 书名
    # print(book_name)
    # book_price = li.xpath('./p[3]/span[1]/text()')  # 价格
    # print(book_price)
    author = li.xpath('./p[@class="search_book_author"]/span[1]//text()')  # 作者
    # print(author)
    press = li.xpath("./p[@class='search_book_author']/span[3]/a/text()")  # 出版社
    # print(press)
    comments = li.xpath("p[4]/a/text()")  # 评论总数
    # print(comments)
    introduction = li.xpath("p[2]/text()")  # 简介
    # print(introduction)
    print(book_name, author, press, comments, introduction)

# 保存到excel

book_info = xlwt.Workbook(encoding='utf-8')           # 创建workbook对象
book_sheet = book_info.add_sheet('sheet1')            # 通过矩阵坐标指定要输入位置,创建表

# 写入数据,第一行参数表示“行”,第二个参数“列”,第三个参数是内容
book_sheet.write(0, 0, '书名')
book_sheet.write(0, 1, '作者')
book_sheet.write(0, 2, '出版社')
book_sheet.write(0, 3, '评论总数')
book_sheet.write(0, 4, '简介')

#将爬取到的不同字段分别保存到对应格子
book_sheet.write(1, 0, book_name)
book_sheet.write(1, 1, author)
book_sheet.write(1, 2, press)
book_sheet.write(1, 3, comments)
book_sheet.write(1, 4, introduction)

book_info.save('book_info.xls')           # 保存数据到名为book_info的excel文件里

求指点求指点😭

  • 写回答

2条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    import requests
    from lxml import etree
    import xlwt
    
    urls = ('9787501586387', '9787501586448', '9787544258210')
    list1 = []
    
    book_info = xlwt.Workbook(encoding='utf-8')           # 创建workbook对象
    book_sheet = book_info.add_sheet('sheet1')            # 通过矩阵坐标指定要输入位置,创建表
    
    # 写入数据,第一行参数表示“行”,第二个参数“列”,第三个参数是内容
    book_sheet.write(0, 0, '书名')
    book_sheet.write(0, 1, '作者')
    book_sheet.write(0, 2, '出版社')
    book_sheet.write(0, 3, '评论总数')
    book_sheet.write(0, 4, '简介')
    ind = 1
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
    }
    
    for url in urls:
        url0 = 'https://search.dangdang.com/?key={}'.format(url)
        print(url0)
    
        # 获取响应
        respond = requests.get(url0, headers=headers)
        # respond.encoding=''
        print(respond.status_code)
        html = respond.text
        # with open('dang.html','w') as f:
        #     f.write(respond.text)02.
    
        htmls = etree.HTML(html)
        ul = htmls.xpath('//*[@id="search_nature_rg"]/ul/li[1]')  # 获取书单
        # print(ul)
        for li in ul:
            book_name = li.xpath("./p[1]/a[1]/@title")[0]  # 书名
            # print(book_name)
            # book_price = li.xpath('./p[3]/span[1]/text()')  # 价格
            # print(book_price)
            author = li.xpath('./p[@class="search_book_author"]/span[1]//text()')[0]  # 作者
            # print(author)
            press = li.xpath("./p[@class='search_book_author']/span[3]/a/text()")[0]  # 出版社
            # print(press)
            a = li.xpath("p[5]/a")  # 评论总数
            comments = a[0].xpath("text()")[0] if len(a)>0 else "(没有评论)"
            introduction = li.xpath("p[2]/text()")[0]  # 简介
            # print(introduction)
            print(book_name, author, press, comments, introduction)
    
            # 保存到excel
    
            #将爬取到的不同字段分别保存到对应格子
            book_sheet.write(ind, 0, book_name)
            book_sheet.write(ind, 1, author)
            book_sheet.write(ind, 2, press)
            book_sheet.write(ind, 3, comments)
            book_sheet.write(ind, 4, introduction)
            ind +=1
    
    book_info.save('book_info.xls')           # 保存数据到名为book_info的excel文件里
    

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

    img

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

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 1月30日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加