python爬虫脚本-动态加载实现方法
import requests
import json
import time
from fake_useragent import UserAgent
import pandas
from lxml import etreeua = UserAgent()
json_list = []def json_to_excel(json_file, excel_file):# 打开JSON文件excel_list = []with open(json_file, 'r', encoding='utf-8') as f:json_to_python_all_data = json.load(f) # 读取JSON文件的所有内容,将读取的结果返回为python的格式for json_to_python_data_dict in json_to_python_all_data: # JSON数据是一个列表,列表中有多个元素,元素是dict字典类型,for每次读出一个元素array_list = [] # 此列表目的是临时将字典的数据转成列表的数据for key, value in json_to_python_data_dict.items(): # 遍历字典返回(键, 值) 元组array_list.append(value) # 在原来的临时列表末尾追加新的对象excel_list.append(array_list) # 临时链表的对象添加完成,添加一次到表格的列表,可以理解成列表中添加了一个元素,元素是列表类型pd = pandas.DataFrame(excel_list) # 创建一个对象pd.to_excel(excel_file, sheet_name='Sheet1', index=False, header=None) # 将DataFrame对象写入到Excel工作表中,没有横纵坐标的数字编号if __name__ == '__main__':num = 1 # 页数while num <= 666:# 请求参数url = 'https://www.cmef.com.cn/exhibitorlist/ExhibitorQuery'data = {"exhibitionIds":["e9defafb-5d6b-42d2-b523-c2abad413c75","d2f77a00-c615-4cb6-85b4-3058f515c0ab","af920968-535d-4b73-aa41-f1d092077e34","5c096d71-c5b8-4432-a0dc-7f3175b25596","601156ff-abf5-439f-83df-8e5f9ef180f2","a20542d0-3f06-4163-bc4b-26f6cac7d4b3","667ed22f-b921-4910-87b1-6ed9575ce6b1","f7dc8fe5-c2ce-41ba-93df-80b1c632dac4","678f8c16-9474-4762-b012-9d5dad231e5d"],"categories":[],"text":"","pageSize":12,"pageIndex":num,"exhibitionMap":[{"Id":"e9defafb-5d6b-42d2-b523-c2abad413c75","IsShow":1},{"Id":"d2f77a00-c615-4cb6-85b4-3058f515c0ab","IsShow":0},{"Id":"af920968-535d-4b73-aa41-f1d092077e34","IsShow":0},{"Id":"5c096d71-c5b8-4432-a0dc-7f3175b25596","IsShow":1},{"Id":"601156ff-abf5-439f-83df-8e5f9ef180f2","IsShow":0},{"Id":"a20542d0-3f06-4163-bc4b-26f6cac7d4b3","IsShow":0},{"Id":"667ed22f-b921-4910-87b1-6ed9575ce6b1","IsShow":1},{"Id":"f7dc8fe5-c2ce-41ba-93df-80b1c632dac4","IsShow":0},{"Id":"678f8c16-9474-4762-b012-9d5dad231e5d","IsShow":0}]}headers = {'cookie': '1839d162ecb47855294207; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221839d162e1c6cb-0a9b1aa3e1e255-78565470-2073600-1839d162e1da35%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%221839d162e1c6cb-0a9b1aa3e1e255-78565470-2073600-1839d162e1da35%22%7D; Hm_lvt_a15b989525609a6596aad6539529f6a6=1666081914,1666143526,1666175451,1666231489; Hm_lpvt_a15b989525609a6596aad6539529f6a6={}'.format(str(time.time())[:10]),'origin': 'https://www.cmef.com.cn','referer': 'https://www.cmef.com.cn/exhibitorlist?cid=18','user-agent': ua.random}res = requests.post(url, headers=headers, data=data).textprint(res)html = etree.HTML(res)company_list = html.xpath('//div[@class="exc-item-title inner"]//text()')for simple_name in company_list:json_dict = dict()json_dict['公司名称'] = simple_namejson_list.append(json_dict) # 将字典放入列表中print(simple_name)print(f'------------------第{num}页数据已爬完------------------')num += 1time.sleep(1)json.dump(json_list, open('data.json', 'w', encoding='utf-8'), indent=4, ensure_ascii=False) # 存json文件json_to_excel("data.json", "data.xlsx")
python爬虫脚本-动态加载实现方法相关推荐
- GEE学习笔记 八十七:python版GEE动态加载地图方法(更新版)
为了防控疫情,继续宅在家里--. 国内某些在国外受过高等教育的人竟然认为公开承认上图红色注释会引起某些麻烦. 在Google Earth Engine的python版API更新后,之前使用folium ...
- python爬虫之动态加载获取药品监督管理局
本次爬取实现使用request模块爬取国家药品监督管理局的企业信息数据并存入到Excel表格中 爬取目标网站 http://scxk.nmpa.gov.cn:81/xk/# 分析页面: 打开网页查看首 ...
- Python爬虫获取异步加载站点pexels并下载图片(Python爬虫实战3)
Python爬虫获取异步加载站点pexels并下载图片(Python爬虫实战3) 1. 异步加载爬虫 对于静态页面爬虫很容易获取到站点的数据内容,然而静态页面需要全量加载站点的所有数据,对于网站的访问 ...
- 用Python爬取动态加载的诸如百度的图片
用Python爬取动态加载的诸如百度的图片 使用原因 代码如下 模块介绍 selenium模块 lxml解析模块 requests模块 去除重复 开启多线程 效果如下 留言 使用原因 学习Python ...
- python编程(动态加载)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 脚本语言都有一个优点,就是动态加载.lua语言有这个优点,python也有这个特性.说简单点就是 ...
- Python爬虫 解决异步加载问题--以爬取PEXELS图片为例
第一次尝试爬取->[Python爬虫]爬虫实例:三种方式爬取PEXELS图片 在爬取PEXELS时,遇到了这样问题: 页面使用Ajax的异步加载技术来实现分页,所以通过request.text无 ...
- python 反射和动态加载_Python的反射
什么是反射 反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用.修改等操作.它有四个重要的方法: getattr 获取指定字符串名称的对象属性 setattr 为对 ...
- python爬取动态加载的网页之爬取猫眼电影实时票房
<猫眼电影实时票房>这个网页是通过动态加载的数据,大约4秒钟就要请求一次服务器,上面的数据每次请求都会产生变化,如果直接用requests请求它的html源代码,并获取不了它的数据. 网页 ...
- 教你用Python爬取动态加载的数据
例子1:爬取豆瓣电影中的电影详情数据 url:https://movie.douban.com/ 1.什么是动态加载的数据: 我们通过requests模块进行数据爬取无法每次都是可见即可得,有些数据是 ...
最新文章
- 在linux内核中获得比jiffies精度更高的时间值【转】
- 求解最长单调递增子串
- 天然气表怎么看多少方_宝宝奶粉的的营养成分表,到底怎么看?
- vant 做表格_Vant List 列表
- endl、flush、ends、unitbuf、nounitbuf区别及详解
- java基础知识——面向对象基本概念
- Solaris是出色的Java开发平台的原因
- mysql宽字节注入_转宽字节注入详解
- java中修改密码_java怎样修改用户名密码?
- 思源EMLOG文章页网址跳转插件V1.1
- 在 IntelliJ IDEA 中定制开发 ZooKeeper
- http与https的作用与区别
- MYSQL小函数大用途之-------FIND_IN_SET
- 2021十大运动蓝牙耳机品牌推荐,平价真无线蓝牙耳机运动无拘束
- spark大数据技术与应用 实训
- 生信可视化(part2)--箱线图
- 软件测试整理:测试设计
- lnkscape制作logo
- odoo学习笔记(一)
- 迅雷和BT有什么区别?迅雷是不是不毁硬盘?速度快吗?
热门文章
- 圆与圆的位置关系题目含答案_高中数学直线、圆的位置关系的测试题及答案
- java string类型时间比较大小_Java String类型时间比较大小
- 内行才知道的大数据分析平台
- “IP+空格+域名”方式解决外国网站访问慢问题
- Decawave官方双边测距(一对一)原理介绍及代码实现
- html下拉菜单触摸显示,CSS导航:纯CSS触碰式下拉菜单
- 【整理】WB蛋白样品制备常见问题大全
- 大数据时代社交网络个人信息安全研究
- asr标注工具_【AI模型测试】语音识别ASR的结果校对
- Java在PDF中添加水印(文本/图片水印)效果import com.spire.pdf.*; import com.spire.pdf.graphics.*; import java.awt.*;