python使用selenium爬虫手册

一些必要的库:

from selenium import webdriver  #导入webdriver库 驱动浏览器

from selenium.webdriver.common.keys  import Keys  #调用键盘的库

import time#sleep用

from selenium.webdriver.support.ui import WebDriverWait #循环等待,显式等待

from selenium.webdriver.support. import expected_condition as EC #负责条件模块

浏览器:

driver= webdriver.Chrome( )     #打开谷歌浏览器,driver就代表这个浏览器

driver.get(‘    ’)   #打开某个网站

driver.quit( ) #关闭浏览器

定位元素:

driver.find_element_id('  ')#定位某个元素(通过id属性)

driver.find_element_xpath('  ')#定位某个元素(通过xpath属性)【copy xpath】【绝对定位】

其它:

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

定位多个元素只需将element该为elements就可定位(返回一个list)

对定位的元素操作:

xx.send_keys('  ')#模仿键盘在xx输入啥(若输入中文则要加u)

xx.click(  )#模仿点击xx

xx.clear(  ) #一般用在输入框中,清楚框框里的内容

xx.get_attibute('textContent') #获取该元素内所有标签<   >后方的文字 , 返回值为str

xx.get_attribute('innerHTML') #获取该元素内所有html

xx.get_attribute('outerHTML') #获取包含选中元素的HTML,即既包含该元素内的html又包含上一层的html

xx.get_attribute(‘标签中的属性') #获取该元素标签中<   >该属性的值

浏览器窗口:

driver.window_handles #获取浏览器所有的窗口【句柄】(是一个list)

driver.swich_to.window( 想要操作的句柄)    #切换窗口

driver.close()  #关闭当前句柄/窗口 (driver关闭后为空)

显式等待:

time.sleep(秒) #延迟几秒 (time库)

WebDriverwait(  ,  ).until( )#等待该元素出现并定位,如果没定位到则会抛出超时异常TimeoutException

element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )  #  10秒内不断加载页面,直到找到有这个id的元素或超时,并且定位这个元素为element

EC. xxx     #判断传入标题和获取的标题

xxx如下:

  • title_is   #完全相等
  • title_contains   #获取的包含传入的
  • #判断元素是否加载成功
  • presence_of_element_located    (By.xxx,"该元素某个属性")
  • presence_of_all_elements_located
  • #判断元素是否可见
  • invisibility_of_element_located
  • visibility_of_element_located
  • visibility_of
  • #判断文本是否出现在某元素里面
  • text_to_be_present_in_element   ((By.xxx,"该元素某个属性"),“文本内容”)
  • text_to_be_present_in_element_value
  • #判断frame是否可以切入
  • frame_to_be_available_and_switch_to_it
  • #判断元素是否可点击
  • element_to_be_clickable ((By.xxx,"该元素某个属性"))
  • #判断是不是还在DOM里面
  • staleness_of
  • #判断元素是否被选中
  • element_to_be_selected
  • element_located_to_be_selected
  • element_selection_state_to_be
  • element_located_selection_state_to_be
  • #判断是否有弹窗
  • alert_is_present

By. 后面也可以有很多种(用于presence【目前只碰过这个】)

  • ID
  • NAME
  • XPATH
  • LINK_TEXT
  • PARTIAL_LINK_TEXT
  • TAG_NAME
  • CLASS_NAME
  • CSS_SELECTER 

获取cookies:

driver.get_cookies() #获取cookies (不清楚)

输出网页源代码:

driver.page_source

xx.text:

返回xx元素的内容

selenium官方文档:https://selenium-python.readthedocs.io/

两个入门视频:http://www.iqiyi.com/w_19ru4zw6w9.html?key=497e5c296ca7ff592f821e933523f96a&msrc=3_31_56&aid=7905573509&tvid=7905573509&cid=12&identifier=weixinv1&ftype=27&subtype=1&vip_pc=0&vip_tpc=0&p1=2_22_222&social_platform=qq_friend

http://www.iqiyi.com/w_19rvk5im2p.html?key=497e5c296ca7ff592f821e933523f96a&msrc=3_31_56&aid=9123889709&tvid=9123889709&cid=12&identifier=weixinv1&ftype=27&subtype=1&vip_pc=0&vip_tpc=0&p1=2_22_222&social_platform=qq_friend

发布了55 篇原创文章 · 获赞 40 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/hrainning/article/details/83541312