zoukankan      html  css  js  c++  java
  • 爬取京东商品

    爬取京东商品

    爬取步骤分析

    一、进入京东主页

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

    二、进入商品详情页

    ​ 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
            
    
            '''% (good_link,good_name,good_price,good_commit))
            text = '''
            商品链接: %s
            商品名称: %s
            商品价格: %s
            评价人数: %s  
            
    
            '''% (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()
    
  • 相关阅读:
    走势图通用写法
    配置文件通配符的问题
    jvm排查工具
    有趣的linux命令
    jQuery框架
    jQuery常见案例
    页面布局之--Font Awesome+导航
    页面布局之--导航栏功能
    页面布局之--内容区域的左右分居
    Dom,查找标签和操作标签
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11626884.html
Copyright © 2011-2022 走看看