爬取京东商品

爬取京东商品

爬取步骤分析

一、进入京东主页

​ 找到商品输入框--输入商品名称--找到搜索按钮--点击搜索按钮

二、进入商品详情页

​ 1、商品链接:

​ 2、商品名称:

​ 3、商品价格:

​ 4、评论人数:

爬取代码

from selenium import webdriver  # 用来驱动浏览器的  相当于模拟人的点击事件来连续的访问浏览器
from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素
import time

driver = webdriver.Chrome()    #声明驱动对象
try:
    # 等待标签加载
    driver.implicitly_wait(10)
    # 往京东主页发送get请求
    driver.get('https://www.jd.com/')

    input_tag = driver.find_element_by_id('key')  #找到目标
    input_tag.send_keys('macbook pro')   #输入Python关键字
    # 控制键盘,按回车键
    input_tag.send_keys(Keys.ENTER)
    # 找到所有商品的div标签,里面包含所有li商品信息
    goods_div = driver.find_element_by_id('J_goodsList')  #用这个元素找id是q的元素
    # element:找第一个  elements:找所有
    items = goods_div.find_elements_by_class_name('gl-item')   #找class样式是gl-item
# 循环所有li标签
    for item in items:
    # 找到商品链接
        good_link = item.find_element_by_css_selector('.p-img a').get_attribute('href')  #通过css样式查找
        # print(good_link)

        # 商品名称
        good_name = item.find_element_by_css_selector('.p-name em').text
        # print(good_name)

        # 商品价格
        good_price = item.find_element_by_css_selector('.p-price i').text + '$'
        # print(good_price)

        # 评价人数
        good_commit = item.find_element_by_css_selector('.p-commit a').text + "条评价"
        # print(good_commit)

        print('''
        商品链接: %s
        商品名称: %s
        商品价格: %s
        评价人数: %s
        \n
        '''% (good_link,good_name,good_price,good_commit))
        text = '''
        商品链接: %s
        商品名称: %s
        商品价格: %s
        评价人数: %s  
        \n
        '''% (good_link,good_name,good_price,good_commit)
        with open('jd.txt','a',encoding='utf-8') as f:
                f.write(text)
    time.sleep(10)

finally:
    driver.close()

猜你喜欢

转载自www.cnblogs.com/yanjiayi098-001/p/11626884.html