1. 程式人生 > >利用selenium爬取淘寶商品資訊

利用selenium爬取淘寶商品資訊

# coding: utf-8
from selenium import webdriver
import time
# 1.建立瀏覽器物件
driver = webdriver.Firefox()
# 2.開啟淘寶首頁
driver.get('http://www.taobao.com')
# 3.找到搜尋輸入框
search_ele = driver.find_element_by_id('q')
# 4.輸入搜尋關鍵詞
search_ele.send_keys(u'膝上型電腦')
# 5.找到搜尋按鈕
search_btn = driver.find_element_by_class_name('btn-search')
# 6.點選按鈕
search_btn.click()
# 開啟檔案
file_handle = open('shops.txt','w')
for i in range(1, 11):
    print '正在爬取第%s頁資料.......'%i
    # 讓瀏覽器滾動,載入資料
    for x in range(1,11,2):
        # 暫停1秒再開始滾動
        time.sleep(0.5)
        j = x/10.0
        # %f float小數型別的佔位符
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f'%j
        # 執行js程式碼
        driver.execute_script(js)

    # 瀏覽器滾動結束之後,取出資料
    # 找到所有的class名稱為info-cont的標籤
    shops = driver.find_elements_by_class_name('info-cont')
    # for迴圈遍歷列表,取出每一個商品資訊
    for shop in shops:
        # 寫入資料  編碼
        file_handle.write(shop.text.encode('utf-8'))
        # 寫入換行符
        file_handle.write('\n\n')

    # 查詢下一頁
    next_page = driver.find_element_by_link_text('下一頁')
    next_page.click()

# 關閉檔案

file_handle.close()

===========================================================

# coding: utf-8

# 開啟cmd命令列  輸入pip install selenium 下載包
# 從selenium中引入webdriver
from selenium import webdriver
# 引入時間模組
import time
# 1.建立瀏覽器物件,並開啟瀏覽器
driver = webdriver.Firefox()
# 2.在瀏覽器中訪問網址
driver.get('http://www.baidu.com')
# 當前頁的網頁原始碼
# print driver.page_source
# 根據id查詢某個標籤
# element = driver.find_element_by_id('kw')
# # 輸入搜尋關鍵詞
# element.send_keys(u'淘寶')
# 通過id找到百度一下按鈕
news_link = driver.find_element_by_link_text('新聞')
# # 執行點選操作
news_link.click()
# 程式休眠3秒
time.sleep(3)
# 退出瀏覽器
driver.quit()

# element 不加s 找到的是一個標籤
# driver.find_element_by_id()  # 根據id查詢
# driver.find_element_by_class_name()  # 根據class查詢
# driver.find_element_by_css_selector()  # 根據css選擇器查詢
# driver.find_element_by_name()  # 根據name查詢
# driver.find_element_by_link_text() # 根據連結文字查詢

# elements 查詢多個符合條件的標籤,並且返回一個列表
# rs = driver.find_elements_by_class_name('mnav')
# print rs