京东数据爬取用selenium自动化web应用软件测试

phantomjs浏览器
无界面浏览器(无头浏览器),在内存中进行页面加载,高效。
京东数据爬取用selenium自动化web应用软件测试_第1张图片
京东数据爬取用selenium自动化web应用软件测试_第2张图片

from selenium import webdriver
import time

class JdSpider(object):
    def __init__(self):
        self.browser=webdriver.Chrome()
        self.url='https://www.jd.com/'

    #获取商品页面
    def get_page(self):
        #打开京东
        self.browser.get(self.url)
        #找两个节点
        self.browser.find_element_by_xpath('//*[@id="key"]').send_keys('爬虫书籍')
        self.browser.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click()
        #留出时间给页面加载
        time.sleep(2)

    #解析页面
    def parse_page(self):
        #把进度条拉到最下面
        self.browser.execute_script(
            'window.scrollTo(0,document.body.scrollHeight)'
        )
        time.sleep(3)

        #匹配所有商品节点对象列表
        li_list=self.browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li')
        for li in li_list:
            info=li.text.split('\n')
            if info[0].startswith('自营每满'):
                price=info[1]
                name=info[2]
                number=info[3]
                market=info[4]
            elif info[0]=='单件':
                price = info[2]
                name = info[3]
                number = info[4]
                market = info[5]
            elif info[0].startswith('¥'):
                price = info[0]
                name = info[1]
                number = info[2]
                market = info[3]
            print(price,number,market,name)

    def main(self):
        self.get_page()
        while True:
            self.parse_page()
            #判断是否为最后1页
            #不是最后一页,点击下一页
            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
            #否则,break
        print(self.i)

if __name__=="__main__":
    spider=JdSpider()
    spider.main()

京东数据爬取用selenium自动化web应用软件测试_第3张图片

你可能感兴趣的:(京东数据爬取用selenium自动化web应用软件测试)