1. 程式人生 > >Python3使用selenium庫簡單爬蟲(二)

Python3使用selenium庫簡單爬蟲(二)

使用selenium爬取豆瓣圖書top250書籍資訊

1、上一篇文章Python3使用selenium庫簡單爬蟲(一)通過元素的id、name、class_name定位元素,這次使用xpath定位元素

(1)使用xpath定位元素的幾種表示方法:

    *     匹配任意元素

     //*[@id='kw']     匹配任意id='kw'的元素

    //*[@class='s_ipt']     匹配任意class='s_ipt'的元素

    //input[@class='s_ipt']     匹配input標籤下class='s_ipt'的元素

2、定位元素過程中注意因為有很多條資訊,所以是find_elements

_by_xpath

3、time sleep() 函式推遲呼叫執行緒的執行,5表示推遲執行5秒,因為頁面的載入需要時間,如果點選下一頁以後立刻開始定位元素,而那個時候元素還沒有載入完成,那麼程式就容易報錯。

#! usr/bin/env python
#coding:utf-8

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

#開啟谷歌瀏覽器訪問豆瓣圖書top250官網
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
browser.get('https://book.douban.com/top250')

for i in range(0,10):
    # 得到標題
    title = browser.find_element_by_xpath("//div[@id='content']//h1").text
    # 列印標題
    print(title)
    # 獲取當前頁面有關圖書資訊的元素物件的列表
    book_list = browser.find_elements_by_xpath("//tr[@class='item']")
    for ele in book_list:
        print(ele.text + '\n')
    # 輸出當前頁數
    print("--------第%s頁--------"%(i+1))

    # 訪問下一頁
    next_page = browser.find_element_by_class_name("next").click()
    time.sleep(5)
    print('\n')

browser.quit()