• Python+Selenium自动搜索基金业协会指定企业名单,爬虫抓取指定信息并保存到数据库


    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()

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

  • 相关阅读:
    win10重装vscode后打不开
    GDB 调试
    分布式架构--概述一
    汇编语言答案(王爽)第三版
    matplotlib之热成像图
    matplotlib之等高线图
    matplotlib之饼状图
    matplotlib之条形图绘制
    360图片网站批量抓取
    数据转换
  • 原文地址:https://www.cnblogs.com/hiit/p/14842350.html
Copyright © 2020-2023  润新知