下面我将详细讲解“python3通过selenium爬虫获取到dj商品的实例代码”的完整攻略步骤,包括一些常见问题和两条示例说明。
简介
Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,模拟人为对浏览器的操作。通过 Python 的 selenium 库更可以方便地实现网页爬虫。在本文中,我将演示如何使用 Python3 和 selenium 库获取dj商品的实例代码并进行相应的数据处理。
步骤
Step 1:安装 selenium 库和浏览器驱动
安装命令:pip install selenium
注意:selenium 支持多种浏览器进行驱动,这里演示使用 Chrome 浏览器,所以还需要下载 Chrome 的浏览器驱动,需要根据系统及 Chrome 版本下载对应的驱动,下载地址为:http://npm.taobao.org/mirrors/chromedriver/,下载后保留解压路径。
Step 2:导入必要的库
from selenium import webdriver
import time
Step 3:设置 Chrome 的驱动路径
driver_path = "path/you/put/chromedriver.exe"
driver = webdriver.Chrome(driver_path)
注意:将上面的代码中 path/you/put/
替换成你自己下载 Chrome 的浏览器驱动的解压路径。
Step 4:访问商品页面
url = "https://detail.dangdang.com/60468939.html"
driver.get(url)
time.sleep(2) # 等待页面加载完成
Step 5:获取商品信息
goods_name = driver.find_element_by_xpath("//div[@class='name_info']/h1") # 获取商品名称
goods_price = driver.find_element_by_xpath("//span[@class='neg']/b") # 获取商品价格
注意:find_element_by_xpath()
方法可以通过 XPATH 表达式获取页面中的元素,可以使用 Chrome 浏览器开发者工具获取 XPATH 表达式。
Step 6:输出商品信息
print("商品名称:", goods_name.text)
print("商品价格:", goods_price.text)
Step 7:关闭 Chrome 浏览器
driver.quit()
常见问题
Q:为什么需要等待页面加载?
A:通过 Selenium 自动化访问网页时,页面某些元素可能需要一定的时间才能完全加载,因此需要等待一段时间。这里通过 time.sleep()
方法等待页面加载完成。
Q:如何获取页面元素的 XPATH 表达式?
A:在 Chrome 浏览器中打开所要获取元素的页面,按 F12 键打开开发者工具。在 DOM 树中选中对应元素,在 Elements 页中会显示该元素的标签及其属性信息。右键该元素,在弹出的菜单中选择 Copy -> Copy XPath,即可获取 XPATH 表达式。
示例说明
示例一:获取斗破苍穹1-4部全套
driver_path = "path/you/put/chromedriver.exe"
driver = webdriver.Chrome(driver_path)
url = "http://book.dangdang.com/subject/9927049.html"
driver.get(url)
time.sleep(2)
books_selector = driver.find_elements_by_xpath("//ul[@class='bang_list clearfix bang_list_mode']/li")
for book_selector in books_selector:
book_name_selector = book_selector.find_element_by_xpath(".//div[@class='name']/a")
book_name = book_name_selector.get_attribute('title')
if "斗破苍穹" in book_name:
book_price_selector = book_selector.find_element_by_xpath(".//span[@class='price_n']")
book_price = book_price_selector.text
print("{} 的价格为 {}".format(book_name, book_price))
driver.quit()
上面的示例代码演示如何获取当当网中“斗破苍穹1-4部全套”的书籍名称及其价格。
示例二:获取某个商铺的商品列表
driver_path = "path/you/put/chromedriver.exe"
driver = webdriver.Chrome(driver_path)
shop_url = "http://shop.dangdang.com/4040196.html"
driver.get(shop_url)
goods_selector = driver.find_elements_by_xpath("//div[@class='name']/a")
for goods in goods_selector:
goods_name = goods.get_attribute('title')
goods_url = goods.get_attribute('href')
driver.get(goods_url)
time.sleep(2)
goods_price_selector = driver.find_element_by_xpath("//div[@class='price_m']/span[@class='price_n']")
goods_price = goods_price_selector.text
print("{} 的价格为 {}".format(goods_name, goods_price))
driver.quit()
上面的示例代码演示如何获取某个商铺中各个商品的名称及其价格。
希望这个攻略能对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3通过selenium爬虫获取到dj商品的实例代码 - Python技术站