您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

js/python 抓取网页数据,导出execl

文章目录

  • 前言
  • 操作代码


前言

js的方式:直接使用post获取所有的数据,因为是分页数据有total显示所有的数据,在请求的时候,就可以直接把每页的数据显示为total的值。没有太大的技术含量
python方式:直接遍历页码获取数据,js也可以

操作代码

  • js
		// url是要获取数据的接口,直接从浏览器中header查看即可,param也是如此
      self.$http.post(`url`, param).then(result => {
      // jsonData 是需要的数据。这是在网搜索的关于导出为csv的方法。没有样式,且导出之后最好打开一遍,然后另存为xlxs
        let str = `id,logo,公司名称,种类,所属区域,地址\n`;//
        //增加\t为了不让表格显示科学计数法或者其他格式
        for(let i = 0; i < jsonData.length; i++){
          for(let item in jsonData[i].company){
            // console.log(jsonData[i].company[item])
            str+=`${jsonData[i].company[item] + '\t'},`;
          }
          str+='\n';
        }
        //encodeURIComponent解决中文乱码, \ufeff是 ""
        let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
        //通过创建a标签实现
        let link = document.createElement("a");
        link.href = uri;
        //对下载的文件命名
        link.download =  "展商公司.csv";
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);

      })
  • python
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
import requests
import json
import openpyxl

def save_to_file(response_data,worksheet):
	#shop_items 是需要的数据,这里只有两列
	for i in shop_items:
		company_data = i['company']
		company_name = company_data['name']
		company_info = company_data['category']
		row = []
		row.append(str(company_name))
		row.append(str(company_info))
		worksheet.append(row)
		#with open('company_info.txt','a',encoding='utf-8') as f:
			# data = str(company_name) + '' + str(company_info) + '\n'
			# f.write(data)

def post_url(page_index,worksheet):
	# 发送请求是需要的参数headers和查询的内容req_data
	headers = {}
	req_data = {}
	# 这是查询语句中的分页的页码
	req_data['page'] = page_index
	response = requests.post('url',headers=headers,data=json.dumps(req_data))
	response_data = json.loads(response.text)
	save_to_file(response_data,worksheet)
	# has_next 是判断是否还有最后一页的
	if has_next:
		page_index = page_index + 1
		post_url(page_index,worksheet)
	else:
		print('donw!')

def main():
	workbook = openpyxl.Workbook()
	worksheet = workbook.active
	worksheet.append(['公司名','信息'])
	start_page = 1
	post_url(start_page,worksheet)
	workbook.save('company_list.xlxs')

if __name__ == '__main__'
main()

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进