zoukankan      html  css  js  c++  java
  • selenium之京东商品爬虫

    #今日目标
    
    **selenium之京东商品爬虫**
    
    自动打开京东首页,并输入你要搜索的东西,进入界面进行爬取信息
    
    ```
    from selenium import webdriver
    import time
    
    class JdSpider(object):
        def __init__(self):
            self.browser=webdriver.Chrome()
            self.url='http://www.jd.com/'
            self.i=0
    
    
        #获取商品
        def get_page(self):
            #打开京东
            self.browser.get(self.url)
            #找两个节点
            self.browser.find_element_by_xpath('//*[@id="key"]').send_keys('Python书籍')
            self.browser.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click()
            #留出时间给页面加载
            time.sleep(2)
    
    
        #解析页面
        def  parse_page(self):
            # 把下拉菜单拉到底部,执行JS脚本
            self.browser.execute_script(
                'window.scrollTo(0,document.body.scrollHeight)'
            )
            time.sleep(2)
    
    
            #匹配所有商品节点对像列表
            li_list=self.browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li')
            for li in li_list:
                info = li.text.split('
    ')
                if info[0].startswith('每满'):
                    price=info[1]
                    name=info[2]
                    number=info[3]
                    market=info[4]
                elif info[0]=='单价':
                    price = info[3]
                    name = info[4]
                    number = info[5]
                    market = info[6]
                elif info[0].startswith('') and info[1].startswith(''):
                    price = info[0]
                    name = info[2]
                    number = info[3]
                    market = info[4]
                else:
                    price = info[0]
                    name = info[1]
                    number = info[2]
                    market = info[3]
                print(price,number,market,name)
                self.i += 1
    
    
    
        def main(self):
            self.get_page()
            while True:
                self.parse_page()
                #判断是否为最后一页
                if self.browser.page_source.find('pn-next disabled')==-1:
                    # 不是最后一页,点击下一页
                    self.browser.find_element_by_class_name('pn-next').click()
                    time.sleep(3)
                else:
                    break
            print(self.i)
    
    
    if __name__ == '__main__':
        spider=JdSpider()
        spider.main()
    
    ```
  • 相关阅读:
    「学习笔记」min_25筛
    HNOI2019游记
    【SDOI2017】数字表格
    【APIO2016】烟火表演
    【SCOI2015】小凸想跑步
    java Thread源码分析
    java ThreadGroup源码分析
    bean获取Spring容器
    spring 管理bean
    thinkphp5.0.19 request
  • 原文地址:https://www.cnblogs.com/cxiaolong/p/11273336.html
Copyright © 2011-2022 走看看