1. 程式人生 > >基於Headless瀏覽器來訪問當當頁面商品資訊--程式碼示例

基於Headless瀏覽器來訪問當當頁面商品資訊--程式碼示例

依賴庫說明

selenium: 相容不同瀏覽器的WebDriver
PhantomJS: 著名的無頭瀏覽器,不幸的是最近maintainer放棄繼續支援維護了,真是一件悲傷的事情。
開發語言: Python 3.6

功能描述

從噹噹商城中爬取某個商品的價格和名稱。這裡嘗試查詢”非暴力溝通“的圖書資訊,輸出價格和命名。

程式碼示例

  # -*- coding: utf-8 -*-
"""
Created on Tue Jul 10 14:41:01 2018

@author: chenjunfeng
"""

from selenium.webdriver.common.action_chains import
ActionChains from selenium import webdriver import pandas as pd import re from selenium.webdriver.common.keys import Keys driver = webdriver.PhantomJS(executable_path=r'D:/Program Files/phantomjs-2.1.1-windows/bin/phantomjs') url='http://www.dangdang.com/' driver.get(url) input_node=driver.find_element_by_xpath('//*[@id="key_S"]'
) input_node.send_keys(r"非暴力溝通") input_node.send_keys(Keys.ENTER) # wait for a second driver.implicitly_wait(1) title_path = r'//*[@id="p23807861"]/p[1]/a/font' price_path = r'//*[@id="p23807861"]/p[3]/span[1]' title = driver.find_element_by_xpath(title_path).text price = driver.find_element_by_xpath(price_path).text print("title:"
+ title + ", price:" + price)

程式碼說明:
1. 這裡預設使用的phantomjs的路徑是內建寫死的,大家可以自行修改即可。
2. Firefox/Chrome中使用的xpath路徑是不一樣的,建議使用chrome
3. 在這裡使用的web element的節點是直接寫死的,大家可以參考使用相對xpath來進行大範圍的查詢和使用

## 總結
基於headless瀏覽器非常強大,從此沒有不能爬的資料了……