概要
继上篇- > 自动化工具DrissionPage的使用 ( 一) 我们继续研究 DrissionPage的使用
开始整活
对于自动化程序,标签定位
以及获取标签对应的数据
是重中之重 本次以豆瓣排行榜为例 (https://movie.douban.com/chart)
SessionPage
获取SessionPage
对象
from DrissionPage import SessionPage as Session
driver = Session( )
driver. get( 'https://movie.douban.com/chart' )
获取标签内所对应的数据
Ele = driver. ele( '#db-global-nav' )
print ( Ele. html)
print ( Ele. tag)
print ( Ele. text)
print ( Ele. attrs)
print ( Ele. link)
id属性
< div id = "db-global-nav" > - - > 对应元素定位方式 - - > driver. ele( '#db-global-nav' )
Ele = driver. ele( '#db-global-nav' )
print ( Ele. html)
print ( Ele. tag)
print ( Ele. text)
print ( Ele. attrs)
print ( Ele. link)
class属性
< div class = "indent" > - - > 对应元素定位方式 - - > driver. ele( '.indent' )
其他属性
< td valign= "top" > - - > 对应元素定位方式 - - > driver. ele( '@valign=top' )
print ( driver. ele( '@valign=top' ) . html)
print ( driver. eles( '@valign=top' ) )
获取所有的a标签
a_list = driver. eles( 'tag:a' )
for a in a_list:
print ( a. link)
print ( a. text)
获取指定标签下所有的a标签
parentEle = driver. ele( ".indent" )
a_list = parentEle. eles( 'tag:a' )
for a in a_list:
print ( a. link)
print ( a. text)
print ( a. attrs[ 'title' ] )
print ( a. attrs[ 'class' ] )
包含(模糊)匹配
< td valign= "top" > - - > 对应元素定位方式 - - > driver. eles( '@valign:top' )
xpath匹配
Ele = driver. ele( '#content' )
table_list = Ele. eles( "xpath://table" )
for t in table_list:
link = t. ele( ".pl2" ) . ele( 'xpath:./a' ) . link
text = t. ele( ".pl2" ) . ele( 'xpath:./a' ) . text
print ( link, text)
设置代理 ip
driver. set . proxies( http= 'http://localhost:1080' , https= '你的代理地址' )
是否验证SSL证书
driver. set . verify( on_off= True )
设置请求头
driver. set . headers( { . . . } )
driver. set . header( name= 'key' , value= 'val' )
重定向次数
driver. set . max_redirects( times= 15 )
SessionOptions
可以先创建SessionOptions
对象再初始化SessionPage
from DrissionPage import SessionPage as Session, SessionOptions
so = SessionOptions( )
so. set_retry( times= 5 , interval= 6 )
so. set_proxies( '代理地址' )
driver = Session( session_or_options= so)
ChromiumPage
上文已经介绍过,这个模式是用来操控浏览器的 操作方式和我们熟悉的selenium
雷同
获取ChromiumPage
对象
from DrissionPage import ChromiumPage
driver = ChromiumPage( )
元素定位&获取元素对应数据
获取cookie
driver. get( 'https://movie.douban.com/chart' )
print ( driver. get_cookies( ) )
页面刷新
driver. refresh( )
driver. wait. load_complete( )
WebPage
两种模式d
对应ChromiumPage
, s
对应SessionPage
模式切换
from DrissionPage import WebPage
pageC = WebPage( )
pageS = WebPage( 's' )
pageS. change_mode( copy_cookies= True )
cookie传递
pageS. cookies_to_session( copy_user_agent= True , copy_cookies= True )
pageS. cookies_to_browser( )