巧用selenium爬取巨潮资讯公司数据

立项背景:在做深度学习的过程中利用python进行建模,需要数据来训练模型。

项目目标:通过运用python的selenium模块,爬取巨潮资讯网站关于公司的数据并存储到csv文件。

项目流程图

源码

from selenium.webdriver import Chrome       #引入selenium中的Chrome
from selenium.webdriver.common.keys import Keys       #引入键盘
import time         #时间模块
import requests
import os
import csv
import codecs
import csv
data_index=1
data=[1,2,3,4,5]
temp_index1=1
temp_index2=1
browser=Chrome()         #创建浏览器
browser.get("http://webapi.cninfo.com.cn/#/dataBrowse")
browser.find_element_by_id('btn2').click()
#找到输入框,输入男装并且回车
time.sleep(3)
js="var q=document.documentElement.scrollTop=10000"
browser.execute_script(js)
time.sleep(3)
browser.find_element_by_xpath('//div[@class="detail-cont-top"]//*[@type="text"]').send_keys("制造业",Keys.ENTER)
browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div/i').click()
lis=browser.find_elements_by_xpath('//*[@id="result_a"]/ul//li[@class="tree-empty tree-opened"]')
for li in lis[11:13]:src_name=li.find_element_by_xpath('.//a').get_attribute("data-name")print(src_name)path='F:\\pang'+'\\'+src_nameisExists = os.path.exists(path)if not isExists:os.makedirs(path)#爬数据_第二个框li.find_element_by_xpath('.//a').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[1]/div[2]/div[2]/div[1]/div[1]/label/i').click()browser.find_element_by_xpath('//div[@class="arrow-btns"]/button[1]').click()print("手点")time.sleep(10)browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[1]/div[2]/div[2]/div[3]/div[1]/label/i').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div[2]/div[1]/div[3]/ul/li[1]/label/i').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div[2]/div[1]/div[3]/ul/li[3]/label/i').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div[2]/div[1]/div[3]/ul/li[15]/label/i').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div[2]/div[1]/div[3]/ul/li[16]/label/i').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div[2]/div[2]/button[1]').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div[2]/div[3]/div[1]/label/i').click()browser.find_element_by_xpath('//*[@id="root"]/div/div[3]/div/div/div/div[1]/div/button').click()#页面出来了for page_index in range(200):for i in range(10):for j in range(4):temp='//*[@id="contentTable"]/tbody/tr['+str(i+1)+']/td['+str(j+1)+']'browser.execute_script(js)time.sleep(3)data_1=browser.find_element_by_xpath(temp).get_attribute('title')data[0]=data_indexdata[j+1]=data_1data_index+=1print(data)path_new = path + '\\data.csv'with open(path_new, 'a',encoding='utf-8',newline='') as csvfile:writer = csv.writer(csvfile)writer.writerow(data)print(page_index+1,"页爬取成功,下一页喽")browser.find_element_by_xpath('//li[@class="page-next"]').click()time.sleep(10)

项目运行效果

巧用selenium爬取巨潮资讯公司数据相关推荐

  1. selenium爬取巨潮资讯指定领域下所有上市公司的数据并存储到csv文件

    selenium爬取巨潮资讯指定领域下所有上市公司的数据并存储到csv文件 from selenium.webdriver import Chrome #引入selenium中的Chrome from ...

  2. python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例

    第一次写一个算是比较完整的爬虫,自我感觉极差啊,代码low,效率差,也没有保存到本地文件或者数据库,强行使用了一波多线程导致数据顺序发生了变化... 贴在这里,引以为戒吧. # -*- coding: ...

  3. 批量爬取巨潮资讯网中“贵州茅台”相关公告的PDF文件。

    1 需求 批量爬取巨潮资讯网中"贵州茅台"相关公告的PDF文件. 2 代码实现 import reimport requests from selenium import webd ...

  4. python3爬取巨潮资讯网站年报数据

    python3爬取巨潮资讯网站年报数据 2018年年底巨潮资讯http://www.cninfo.com.cn改版了,之前实习生从网上找的脚本不能用了,因此重新修改了下爬取脚本.最初脚本的原链接忘了, ...

  5. python3爬取数据_python3爬取巨潮资讯网站年报数据

    python3爬取巨潮资讯网站年报数据 2018年年底巨潮资讯http://www.cninfo.com.cn改版了,之前实习生从网上找的脚本不能用了,因此重新修改了下爬取脚本.最初脚本的原链接忘了, ...

  6. python3爬取巨潮资讯网的年报数据

    python3爬取巨潮资讯网的年报数据 前期准备: 需要用到的库: 完整代码: 前期准备: 巨潮资讯网有反爬虫机制,所以先打开巨潮资讯网的年报板块,看看有什么解决办法. 巨潮咨询年报板块 可以通过这样 ...

  7. 基于python+selenium+Chrome自动化爬取巨潮资讯网A股财务报表

    转自同学的博客 引言: 网页爬虫分为静态网页爬虫和动态网页爬虫,前者是指索要获取的网页内容不需要经过js运算或者人工交互, 后者是指获取的内容必须要经过js运算或者人工交互.这里的js运算可能是aja ...

  8. python selenium 爬取去哪儿网的数据

    python selenium 爬取去哪儿网的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/selenium+qu ...

  9. selenium爬取淘宝商品基础数据以及商品详情(茶叶数据)

    selenium爬取淘宝商品基础数据以及商品详情 目录 网页分析 确定要爬取的数据 分析网页构成 爬取流程 登入 爬取基础数据以及商品详情 爬取基础数据 爬取商品详情 淘宝滑动验证码 保存EXCEL中 ...

最新文章

  1. jQuery Validate 表单验证插件----自定义校验结果样式
  2. sql中 set 和select 的区别
  3. [学习笔记]c#Primer中文版-类设计、static成员、const和readonly数据成员
  4. 容器编排技术 -- Kubernetes设计架构
  5. 虚拟化--vsphere排错组件归纳
  6. EBS系统请求表定时清除
  7. android多版本打包,Android的持续化集成及多版本打包
  8. 联想微型计算机怎么进入bios,详细教你联想电脑怎么进入bios
  9. 从 SGD 到 Adam —— 深度学习优化算法概览(一) 重点
  10. python os.open禁止写入缓存区_Python-设置文件缓冲类型
  11. 2021-08-06MATLAB深度学习简单应用
  12. android纯净版输入法,百度输入法纯净版
  13. JS API: Fullscreen 全屏 API
  14. 看华为生态大学 如何玩转人才生态?
  15. learn git branching学习整理
  16. win10找不到便签(便利贴)怎么办,Win10找回便签功能的方法
  17. cursor: not-allowed; readonly的升级版,鼠标经过时,显示为禁止图标
  18. 视频按帧截取 python程序
  19. 小游戏《塔防》开发(二)
  20. cdoj1339郭大侠与线上游戏

热门文章

  1. Axure 8.1.0.3372亲测可用授权码
  2. 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 附录一 物理层与通信基础
  3. NCC带审批流的主子表
  4. 【UEditor】百度UE富文本自定义按钮添加文本
  5. 请问:怎么实现大文件快速上传?
  6. 5906. 【NOIP2018模拟10.15】传送门 (portal)
  7. ctf-web-文件包含2
  8. nodejs+vue实现登录界面功能(一)
  9. 高红梅:第三章 海明威社会身份的定位 第一节 文学梦与作家身份的认同
  10. 使用phpStudy在本地安装墨子系统教程