天天看點

Python爬蟲模仿浏覽器爬取:selenium子產品的基本操作

一.模拟浏覽器

​ 谷歌、Firefox、Safari等浏覽器

  • browser=webdriver.Chrome()
  • browser=webdriver.Firefox()
  • browser=webdriver.Safari()
  • browser=webdriver.Edge()
  • browser=webdriver.PhantomJS()

二.通路

上面模拟後的浏覽器

browser.get(‘url’)

三.定位網頁元素

定位元素的方法:

  • driver.find_element_by_xxx(value)
  • from selenium.webdriver.common.by import By driver.find_element(By.ID, value)
推薦Python大牛線上分享技術 扣qun:855408893

領域:web開發,爬蟲,資料分析,資料挖掘,人工智能

零基礎到項目實戰,7天學習上手做項目

           

一、元素定位:用于完成元素定位的定位方式:一定要使用變量接收定位到的元素

​ a = driver.find_element_by_xxx()

  • 1 通過id屬性進行定位:driver.find_element_by_id(id)
  • 2 通過name屬性進行定位:driver.find_element_by_name(name)
  • 3 通過class屬性進行定位:driver.find_element_by_class_name(class_name)
  • 4 通過标簽名進行定位:driver.find_element_by_tag_name(value)

    使用條件:

    • 1 要定位的标簽是該頁面唯一該類标簽
    • 2 要定位的标簽是該類标簽的第一個
  • 5 通過a标簽文本資訊定位(完整的文本):driver.find_element_by_link_text()
  • 6 通過a标簽文本資訊定位(部分文本)driver.find_element_by_partial_link_text()
  • 7 通過css規則進行定位:driver.find_element_by_css_selector()
  • 8 通過xpath定位:driver.find_element_by_xpath()

四.元素的操作

  • 元素名稱.send_keys(value) 輸入内容
  • 元素名稱.clear() 清空

    用于有些輸入的地方有預設值

  • 元素名稱.click() 點選

    主要用于按鈕元素

  • 元素名稱.submit() 送出
  • 按回車送出
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    browser = webdriver.Chrome()
    browser.get('https://www.baidu.com')
    input = browser.find_element_by_id('kw')
    input.send_keys('ywy')
    input.send_keys(Keys.ENTER)
               

五.傳回元素内容

  • 元素名稱.text: 擷取文本
  • 元素名稱.get_attribute(attribute):擷取元素内屬性

    attribute為标簽屬性

  • 元素名稱.id :擷取元素标簽
  • 元素名稱.location:擷取元素名稱
  • 元素名稱.tag_name:擷取元素标簽名稱
  • 元素名稱.size:擷取元素大小

六.浏覽器的前進後退

  • 後退:browser.black()
  • 前進:browser.forward()

七.關閉

  • 關閉目前:browser.close()
  • 關閉所有:browser.quit()

八.簡單的模拟百度搜尋

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
input_data = browser.find_element_by_id('kw')
input_data.clear()
input_data.send_keys('ywy')
#input.send_keys(Keys.ENTER) 回車登入
enter = browser.find_element_by_id('su')
enter.click()
           

後續再補充其他的