当前位置:网络安全 > 使用python爬取图书网站信息并保存到excel中

使用python爬取图书网站信息并保存到excel中

  • 发布:2023-09-29 17:02

首先介绍一下python中的xlwt库

  • 推出 xlwt 包
导入 xlwt
  • 创建简单的工作表
#创建工作簿
工作簿=#创建工作表
oneWorkSheet =工作簿.add_sheet("sheet1")#写入数据(行、列、数据)
oneWorkSheet.写入(0,0, “你好”)
oneWorkSheet.写入(0,1, "xlwt")#保存数据并输入文件路径
工作簿.保存("myExcel.xls")
  • 效果如图

    言归正传
    在爬取网页信息之前,我们需要找到请求网页上一些数据的url
    例如如下网页
    我们打开网页,右键inspect->network->然后选择fetch/XHR
    可以看到所有的数据此网页的请求
    选择一个请求,点击即可获取该请求的基本信息:
    标题:
    请求的url,请求方法(get/post/update/delete) ,以及一些请求头信息,响应头信息
    Response:
    然后点击response可以看到请求返回的响应数据,这是页面上显示的一些数据

现在我们要抓取的图书价格网页有货

1。首先通过请求URL获取这些书籍的书籍ID,并将书籍ID保存在一个列表中

# TODO 先获取图书ID
book_id_list = []
url =请求.获取("https://www.sychzs.cn/recommendBook/getBookListFor Portal?bookT agId=e03b1ec7-466e-484c- 865c -6738989e306a")
res = json.负载(url.文字
res_data = res['数据']
对于 i 范围lenres_data)): book_id_list.append(res_data[i] ['书号'])

2。通过图书ID获取图书的ISBN和价格(获取库存的请求需要携带ISBN参数),并添加到列表中

# TODO 获取书籍 ISBN 和价格
isbn_list = []
价格表 = []
对于 i 范围lenres_data)): data_post_id = {"bookId": book_id_list[ i],}网址=请求.帖子("https://www.sychzs.cn/bookinfo/getBookDetailsById"  ,数据=data_post_id)res = json.加载url.文本=资源['数据']isbn_list .追加( [ '图书详情']['数据']['isbn'] )price_list追加(['折扣价格'])

3。以获取的ISBN为参数获取图书库存

# TODO 获取库存
last_num_list = []对于 i  范围lenres_data)): data_post_isbn = {"isbn": isbn_list[] i],}url =请求.发帖("https://www.sychzs.cn/order/getBookSaleStock" ,数据=data_post_isbn)res = json.加载url.文本=资源['数据']last_num_list .追加() 

4。最后将信息存入excel表格里面

#存入excel
工作簿= xlwt.工作簿()
工作表=工作簿.add_sheet('计算机类新书价格库存信息表',  cell_overwrite_ok=True)
工作表.(0, 0, '图书价格')
工作表.(0, 1, '库存数量')对于 i 范围lenres_data)):工作表.写入(i+1,0, 价格表[i])工作表.写入(i+1,  1,last_num_list[i] ])
工作簿.保存('电脑图书新价库存信息表.xls')

5。整体代码显示

导入 json导入请求导入 xlwtdef get_price_num():# TODO先获取图书idbook_id_list = []url =请求获取 (》https://www.sychzs.cn/recommendBook /getRecommendBookListForPortal?bookTagId=e03b1ec7-466e-484c-865c-6738989e306a")res = json .负载url .文本)res_data =res['数据' ]对于 i  范围(len(res_data)): book_id_list.追加(res_data[i]['书ID'] # TODO 获取图书ISBN和价格isbn_list =  []price_list = [] ]用于 i  范围(len(res_data)):data_post_id = {"书号": book_id_list[i],}url  =请求.帖子( "https://www.sychzs.cn/bookinfo/getBookDetailsById",数据=data_post_id)res = json.加载(url.文本)=资源['数据']isbn_list附加(['书详细信息']['数据'][ 'isbn'])price_list.附加(['折扣价格'])# TODO 获取库存last_num_list = []for  i  范围 (len(res_data)):data_post_isbn = {"isbn":  isbn_list[i],}url  =请求帖子("https://www.sychzs.cn/order/getBookSaleStock",数据=data_post_isbn) res = json .负载(url.文本) 书=资源['数据' ]last_num_list.追加(book)#保存到excel工作簿= xlwt .练习册()工作表 I  cell_overwrite_ok=True)工作表.写入(0,0, '图书价格')工作表 .写入(0, 1 , '库存数量') 对于 i 范围len() res_data)):工作表.写入( i+1, 0, 价格表[i] )工作表.写入(i+1,  1,last_num_list[ i ])工作簿.保存('电脑新书价格库存信息表。 '__main__' :get_price_num()

最终的Excel表格

相关文章