python爬取东方财富网,并将数据导入mysql

1.首先使用xpath获取网页中的表格数据,需要下载谷歌及与之版本相同的相关程序,

链接如下:ChromeDriver Mirror

我下载的正好是压缩过后就是如下程序:

python爬取东方财富网,并将数据导入mysql_第1张图片

2.然后就是连接mysql数据库,建立一个数据表,代码如下:

#导入模块
from selenium import webdriver  #导入模块
import time
from lxml import etree
import pymysql

#链接MySQL数据库
conn = pymysql.connect(host='localhost',user='root',password='zysmn',database='111',port=3306,charset='utf8')
#执行数据库操作
cursor = conn.cursor()
#执行查询操作
cursor.execute("drop table if exists 中国宝安资金流向")
#创建表,批量插入列名
sql="""
    create table 中国宝安资金流向(
    日期 VARCHAR(255),
    收盘价 VARCHAR(255),
    涨跌幅 VARCHAR(255),
    主力净流入净额 VARCHAR(255),
    主力净流入净占比 VARCHAR(255),
    超大单净流入净额 VARCHAR(255),
    超大单净流入净占比 VARCHAR(255),
    大单净流入净额 VARCHAR(255),
    大单净流入净占比 VARCHAR(255),
    中单净流入净额 VARCHAR(255),
    中单净流入净占比 VARCHAR(255),
    小单净流入净额 VARCHAR(255),
    小单净流入净占比 VARCHAR(255)
    )
    """
#游标功能执行这个SQL语句,提供存储数据的一个游标接口,通过游标获取数据
cursor.execute(sql)
#使用sql语句,这里要接收的参数都用%s占位符。注意:无论插入的数据是什么类型,占位符都用%s
sql_1 = "insert into 中国宝安资金流向 values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"

3.最后就是爬取数据了,先读取之前下载好的程序,再选择爬取的网页链接:

driver = webdriver.Chrome(executable_path = r'C:\Users\ASUS\Desktop\chromedriver.exe')
#获取网页
driver.get('https://data.eastmoney.com/zjlx/000009.html')
#延迟执行的2秒
time.sleep(2)
#获取页面源码
source = driver.page_source
#解析源码
mytree = etree.HTML(source)
#定位表格//*[@id="table_ls"]/table/tbody/tr,返回列表
tables = mytree.xpath('//*[@id="table_ls"]/table/tbody/tr')

#循环表格
for i in range(len(tables)):
    #取出所有td标签下的文本
    trs = tables[i].xpath('.//text()')
    cursor.execute(sql_1,tables[i].xpath('.//text()'))
#保存对数据库的修改
conn.commit()
#关闭游标
cursor.close()
#关闭连接
conn.close()
#关闭网页
driver.quit()

最后的运行结果:python爬取东方财富网,并将数据导入mysql_第2张图片

你可能感兴趣的:(笔记,python,mysql,爬虫)