Python 利用selenium和PhantomJS 爬取京东商品页面商品列表

selenium+PhantomJS 介绍、安装、使用:https://blog.csdn.net/qq_34288630/article/details/80342255

一、分析

  1. 所要爬取url:京东商品列表
  2. 如图:
    Python 利用selenium和PhantomJS 爬取京东商品页面商品列表_第1张图片
    3、每页有很多商品,打开页面只加载了一部分,所以需要滑动将所有的数据加载出来,否则获取不到
    4、故用selenium模拟浏览器下滑操作,再将页面源码给bs4进行解析抽取

二、代码编写

# coding=utf-8
import time
from selenium import webdriver
from bs4 import BeautifulSoup

url = "https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&cid2=653&cid3=655&page=1&s=1&click=0"


driver = webdriver.PhantomJS()
driver.implicitly_wait(3)
driver.get(url)

# 模拟下滑到底部操作
for i in range(1,5):
    js = "var q=document.documentElement.scrollTop=10000"
    driver.execute_script(js)
    #driver.execute("window.scrollTo(0,document.body.scrollHeight)")
    time.sleep(9)

# 将加载好的页面源码给bs4解析
soup = BeautifulSoup(driver.page_source,"lxml")

# 进行信息的抽取(商品名称,价格)
goods_info = soup.select(".gl-item")
for info in goods_info:
    title = info.select(".p-name.p-name-type-2 a")[0].text.strip()
    price = info.select(".p-price")[0].text.strip()
    print title
    print price

driver.close()

三、结果

Python 利用selenium和PhantomJS 爬取京东商品页面商品列表_第2张图片

你可能感兴趣的:(Python)