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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值