python selenium入门(三)打开网页爱奇艺,获取影视名,创建数据库,把获取的数据写入数据库。
打开网页爱奇艺,获取影视名,创建数据库,把获取的数据写入数据库。
新增数据的时候做个判断,查询一下数据库有没有这个数据,没有就新增。有就不做任何处理。
1 from time import sleep 2 3 from selenium import webdriver 4 5 from sqlalchemy import create_engine 6 7 from sqlalchemy.ext.declarative import declarative_base 8 9 from sqlalchemy import Column,Integer,String 10 11 from sqlalchemy.orm import sessionmaker 12 13 14 driver = webdriver.Chrome() 15 16 engine=create_engine( 17 "mysql+pymysql://root:byb123456!@localhost:3306/test?charset=utf8", 18 echo=True) 19 20 Base=declarative_base() 21 class mytablemove(Base): 22 __tablename__='mytablemove' 23 id=Column(Integer,primary_key=True) 24 name=Column(String(50)) 25 26 Base.metadata.create_all(engine) 27 28 DBSession=sessionmaker(bind=engine) 29 session=DBSession() 30 31 driver.get('https://www.iqiyi.com/') 32 sleep(2) 33 34 driver.find_element_by_xpath( 35 '/html/body/div[1]/div/div/div[1]/div[3]/div[2]/div/div[4]/div[2]/div/div[1]/h2/div/ul/li/div/a').click() 36 sleep(2) 37 38 handles = driver.window_handles # 获取当前打开的所有窗口的句柄 39 print(handles) 40 41 driver.switch_to.window(handles[1]) # 切换到第二个窗口的句柄 42 43 submit = driver.find_elements_by_class_name('title-link') 44 for i in submit: 45 # print(i.text) 46 d = session.query(mytablemove).filter_by(name=i.text).first() 47 if not d: 48 new_data = mytablemove(name=str(i.text)) 49 session.add(new_data) 50 session.commit() 51 session.close() 52 53 sleep(2) 54 55 driver.quit()