PythonコードDaquanのセレンは、Webページからデータを提示し、SQLiteのデータベースに格納されている(完全なコード)

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/iCloudEnd/article/details/100178579

ページからデータを取得

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver1= webdriver.Chrome()                                             
url='http://www.guzicha'                             
driver1.get(url)  
blist=[]
for i in range(1,8): 
	bh=driver1.find_elements_by_xpath('//*[@id="keypad"]/table/tbody/tr['+str(i)+']/td[2]/a') 
	for t in bh:
		if t.text  == '':
			print('empty',t)
			continue
		para={}
		para['bihua']=i
		para['bstyle']=t.get_attribute('name')
		para['bvalue']=t.text
		blist.append(para)

サブ要素の抽出

# find_elements_by_xpath("./*")  找到所有子元素
# find_elements_by_xpath("./..")  找到父元素
qt=driver1.find_element_by_xpath('//*[@id="keypad"]/table/tbody/tr[8]/td[2]') 
slist=qt.find_elements_by_xpath("./*")
b=0
for item in slist:
	t=item.text
	if t  == '':continue
	if '畫'	in t:
		b=int(t.replace('畫','').strip())
		print(b)
		continue
	para={}
	para['bihua']=b
	para['bstyle']=item.get_attribute('name')
	para['bvalue']=item.text
	blist.append(para)	
	

データベースのsqliteに保存されています

import os
import sqlite3
dbname='cjk_bs.db'
paralist=dic2para(blist)
mdx2db(dbname,paralist)

def dic2para(blist):
	paralist=[]
	for item in blist:
		paralist.append((item['bvalue'],item['bstyle'],item['bihua']))
	return paralist
	
		
def mdx2db(dbname,paralist):

	if os.path.isfile(dbname):
		os.remove(dbname)

	createdb(dbname)
	insert(dbname,paralist)	

def  createdb(dbname):

	conn = sqlite3.connect(dbname)
	c = conn.cursor()

	c.execute('''CREATE TABLE cjk_bs
       	(ID INTEGER PRIMARY KEY  AUTOINCREMENT,
       	bkey           TEXT    NOT NULL,
       	bstyle          TEXT    ,
		bnum			INTEGER

      	 );''')
	conn.commit()
	conn.close()
	return 'ok'


def  insert(dbname,paralist):
	#sqlite
	conn = sqlite3.connect(dbname)
	c = conn.cursor()
	for item in paralist:
		
		msql='''INSERT INTO cjk_bs (bkey,bstyle,bnum ) VALUES (?,?,?)''' 
		para=item
		c.execute(msql,para)
		
	conn.commit()
	conn.close()
	

おすすめ

転載: blog.csdn.net/iCloudEnd/article/details/100178579