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

 

 

 

 

 

posted @ 2021-12-08 15:22  野猫炫  阅读(216)  评论(0编辑  收藏  举报