Python+Selenium自动搜索基金业协会指定企业名单,抓取指定信息并保存到数据库.
网址https://gs.amac.org.cn/amac-infodisc/res/pof/manager/managerList.html
安装使用Python+Selenium请点击这个链接
# -*- coding: utf-8 -*-
# @Time : 2021/5/24
# @Author : Jihaibo
# @desc :Python+Selenium自动搜索基金业协会指定企业名单,抓取指定信息并保存到数据库.网址https://gs.amac.org.cn/amac-infodisc/res/pof/manager/managerList.html
# @File : amacSelenium.py
# @Software: PyCharm from selenium import webdriver #调用 Chrome 浏览器
from selenium.webdriver.common.keys import Keys #调用键盘按键操作需要引入keys 包
from selenium.webdriver.common.action_chains import ActionChains #鼠标事件
from selenium.webdriver.support import expected_conditions as EC #expected_conditions判断当前页面的是否有XX。由于这个模块名称比较长,所以为了后续的调用方便,重新命名为EC了
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait #显性等待,程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间
import os
import requests
import time
import hashlib
import json
import pymysql #查询要检查的管理人(企业)名单目录,fund_name是企业全称
def mysql_sel():
# 数据库连接
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123', db='test')
cur = conn.cursor()
cur.execute("SELECT fund_name FROM `test`.`company`;")
# print(cur.description)
for row in cur:
print(row[0])
getlist(row[0])
# getlist('北京友联四方投资管理有限公司')
cur.close()
conn.close()


#插入新的数据库 mysql_ins( 名称, 信息报送异常, 登记时间, 成立时间, 注册地址, 办公地址, 管理规模区间, 产品信息)
def mysql_ins( name1, yichang, djsj, clsj, zcdz, bgdz, glgmqj, chanpin):
# 数据库连接
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test')
# 插入数据库
sql_2 = f"INSERT INTO `test`.`amac_glr`( `name1`, `yichang`, `djsj`, `clsj`, `zcdz`, `bgdz`, `glgmqj`, `chanpin`) VALUES ( '{name1}', '{yichang}', '{djsj}', '{clsj}', '{zcdz}', '{bgdz}', '{glgmqj}', '{chanpin}')" cur2 = conn.cursor()
cur2.execute(sql_2) # 执行上述sql命令
conn.commit()
# print('成功')
cur2.close()
conn.close() #获取管理人详细信息
def getcon(href):
print(href)
opt = webdriver.ChromeOptions() # 创建Chrome参数对象
opt.headless = True # 把Chrome设置成可视化无界面模式,windows/Linux 皆可
b = webdriver.Chrome(options=opt) #把Chrome设置成可视化无界面模式
b.get(href)
time.sleep(1)
name1 = b.find_element_by_id("complaint2").text
yichang = b.find_elements_by_xpath("//table/tbody/tr/td")[1].text
djsj = b.find_elements_by_xpath("//div[@class='info-body']/div[2]/div[@class='table-response']/table/tbody/tr[5]/td")[1].text
clsj = b.find_elements_by_xpath("//div[@class='info-body']/div[2]/div[@class='table-response']/table/tbody/tr[6]/td")[1].text
zcdz = b.find_elements_by_xpath("//div[@class='info-body']/div[2]/div[@class='table-response']/table/tbody/tr[7]/td")[1].text
bgdz = b.find_elements_by_xpath("//div[@class='info-body']/div[2]/div[@class='table-response']/table/tbody/tr[8]/td")[1].text
glgmqj = b.find_elements_by_xpath("//div[@class='info-body']/div[2]/div[@class='table-response']/table/tbody/tr[18]/td")[1].text
chanpin = b.find_elements_by_css_selector(".table")[8].text
mysql_ins( name1, yichang, djsj, clsj, zcdz, bgdz, glgmqj, chanpin)
# print(b.find_elements_by_css_selector(".table")[8].text)
b.quit() # 获取管理人搜索结果列表(自动搜索)
def getlist(com_name):
print(com_name)
# 通过id方式定位,先清除掉关键词
browser.find_element_by_id("keyword").clear()
#通过id方式定位,输入指定关键词
browser.find_element_by_id("keyword").send_keys(com_name)
#输入关键词后,点击搜索按钮
browser.find_elements_by_css_selector('.reset-btn.button')[0].click()
time.sleep(1)
try:
#得到管理人网址
href = browser.find_element_by_xpath("//table[@id='managerList']/tbody/tr/td/a").get_property('href')
getcon(href)
except Exception as e:
print(str(e)) browser = webdriver.Chrome() #打开谷歌
browser.implicitly_wait(20) # 隐性等待,最长等20秒
browser.get("https://gs.amac.org.cn/amac-infodisc/res/pof/manager/managerList.html") #输入基协管理人地址
# 关闭弹出框遮罩按钮
time.sleep(6)
browser.find_element_by_class_name("layui-layer-btn0").click() #开始,数据库查询
mysql_sel()
browser.quit()

服务器很便宜自己买个测试测试吧

Python+Selenium自动搜索基金业协会指定企业名单,爬虫抓取指定信息并保存到数据库的更多相关文章

  1. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  2. Python + Selenium 自动发布文章(一):开源中国

    https://blog.csdn.net/qq_28804275/article/details/80891949 https://blog.csdn.net/qq_28804275/article ...

  3. 【Python入门只需20分钟】从安装到数据抓取、存储原来这么简单

    基于大众对Python的大肆吹捧和赞赏,作为一名Java从业人员,我本着批判与好奇的心态买了本python方面的书<毫无障碍学Python>.仅仅看了书前面一小部分的我......决定做一 ...

  4. python 爬虫抓取心得

    quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...

  5. Python分布式爬虫抓取知乎用户信息并进行数据分析

    在以前的文章中,我写过一篇使用selenium来模拟登录知乎的文章,然后在很长一段时间里都没有然后了... 不过在最近,我突然觉得,既然已经模拟登录到了知乎了,为什么不继续玩玩呢?所以就创了一个项目, ...

  6. SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)

    1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...

  7. fiddler4如何只抓取指定浏览器的包

    在实际工作中,常常会抓取浏览器的数据,其加载的数据较多,不好区分,不知道其是哪个是需要抓取的数据,所以就需抓取指定浏览器的数据,这样就能很清晰知道数据的来源. 步骤一: 打开fiddler4,再打开浏 ...

  8. 利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  9. python 爬虫抓取 MOOC 中国课程的讨论区内容

    一:selenium 库 selenium 每次模拟浏览器打开页面,xpath 匹配需要抓取的内容.可以,但是特别慢,相当慢.作为一个对技术有追求的爬虫菜鸡,狂补了一些爬虫知识.甚至看了 scrapy ...

  10. 如何利用Python网络爬虫抓取微信朋友圈的动态(上)

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

随机推荐

  1. 键盘事件 key keyCode

    keyCode 8 = BackSpace BackSpace keyCode 9 = Tab Tab keyCode 12 = Clear keyCode 13 = Enter keyCode 16 ...

  2. 47.vue-router的钩子函数

    钩子函数就是路由导航守卫 : 有 7 个守卫,分为 3 类 : 全局守卫:在全部的组件生效: beforeEach 全局前置守卫 afterEach 全局后置守卫 解析守卫 组件守卫:在某个组件生效  ...

  3. 常见APR攻击及其防护

    0x01 什么是ARP 地址解析协议--ARP:是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的 ...

  4. 云游戏平台陷入苦战,继青椒云,云更新,顺网云后,ToDesk正在布局云电竞市场

    在日新月异的科技浪潮中,云游戏正在逐步成为游戏产业的重要分支.根据中国信通院<2023年全球云游戏产业深度观察及趋势研判研究报告>,2022年中国云游戏市场收入达到63.5亿元,同比增长5 ...

  5. 手写MSMQ微软消息队列收发工具类

    一.MSMQ介绍 MSMQ(Microsoft Message Queuing)是微软开发的消息队列技术,支持事务,支持异步发送和接收消息. 两个重要的概念:队列和消息.队列是存放消息的容器和传输消息 ...

  6. Vue2.x 常用功能和方法

    Vue 生命周期 beforeCreate (组件实例刚被创建,组件属性计算之前,如 data 属性等) created (组件实例创建完成, 属性已绑定,但 DOM 还未生成, $el 属性不存在) ...

  7. win10启用长路径

    方法一:操作组策略 Win+R 输入 gpedit.msc 依次点击[计算机配置]->[管理模板]->[系统]->[文件系统],找到 "启用win32长路径" 并 ...

  8. Spark Web UI 监控详解

    Spark集群环境配置 我们有2个节点,每个节点是一个worker,每个worker上启动一个Executor,其中Driver也跑在master上.每个Executor可使用的核数为2,可用的内存为 ...

  9. MudBlazor:基于Material Design风格开源且强大的Blazor组件库

    项目介绍 MudBlazor是一个基于Material Design风格开源.免费(MIT License).功能强大的Blazor组件框架,注重易用性和清晰的结构.它非常适合想要快速构建Web应用程 ...

  10. Mysql篇-三大日志

    概述 undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC. redo log(重做日志):是 Innodb 存储引擎层生成的日志, ...