利用Selenium爬取京东某店铺商品信息

由于近期有一个每日记录京东史密斯旗舰店里所有商品信息的需求,就琢磨着写了一段脚本实现了半自动获取相关信息。
为什么是半自动呢,因为史密斯的商品总共有6页,我将它们的URL直接复制粘贴进了脚本里,没有想办法去自动获取其URL。
不过就如邓小平爷爷所说:“不管黑猫白猫,能捉老鼠的就是好猫”,以下是实现此次需求的代码:

#!/usr/bin/python
# -*- coding:utf-8 -*-

from selenium import webdriver
from lxml import etree
import time,re,csv

# 新建存储csv文件
fp = open('/Users/mason_tao/Desktop/sms.csv','a',newline='',encoding='utf_8_sig')
writer = csv.writer(fp)
# 写入列名
writer.writerow(("商品标题","商品链接","促销价","原价"))

# 获取每页url里的商品详情页url
def get_goods_DetailUrl(url):
    # 将Chrome设置为无头模式
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    browser = webdriver.Chrome(options=chrome_options)

    # browser = webdriver.Chrome()
    browser.get(url)
    # 延时1秒让网页加载完成
    time.sleep(1)
    source = browser.page_source
    html = etree.HTML(source)
    lis = html.xpath("//div[@class='j-module']/ul/li")
    goods_urls = []
    for li in lis:
        goods_url_1 = li.xpath(".//div[@class='jDesc']/a/@href")[0]
        goods_url = 'https:' + goods_url_1
        goods_urls.append(goods_url)
    return goods_urls
    browser.close()

# 在详情页获取商品标题、促销价、原价
def get_goods_Info(goods_urls):
    for goods_url in goods_urls:
        # browser = webdriver.Chrome()

        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('--headless')
        browser = webdriver.Chrome(options=chrome_options)
        print(goods_url)
        # browser = webdriver.Chrome()
        browser.get(goods_url)
        # browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
        time.sleep(1)
        goods_source = browser.page_source
        goods_html = etree.HTML(goods_source)
        title = goods_html.xpath("//div[@class='sku-name']/text()")[-1].strip()
        Goods_url = goods_url
        if goods_html.xpath("//span[@class='p-price']/span[2]/text()") == []:
            price = []
        else:
            price = goods_html.xpath("//span[@class='p-price']/span[2]/text()")[0]
        if goods_html.xpath("//div[@class='item hide']/text()") ==[]:
            hide_text = ''
        else:
            hide_text = goods_html.xpath("//div[@class='item hide']/text()")[0]
        pattern = re.compile(".*?到手.*?([0-9]{4})元.*?")
        if re.findall(pattern, hide_text) == []:
            text_price = price
        else:
            text_price = re.findall(pattern, hide_text)[0]
        goods_list = [title,Goods_url,text_price,price]
        writer.writerow(goods_list)
        browser.close()
        time.sleep(1)

def main():
    urls = ['https://mall.jd.com/view_search-396630-0-99-1-24-1.html',
            'https://aosmith1.jd.com/view_search-396630-0-5-1-24-2.html']
    for url in urls:
        detail_urls = (get_goods_DetailUrl(url))
        get_goods_Info(detail_urls)
      

if __name__ =='__main__':
    main()

下图为爬取的部分结果:


史密斯商品
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 前言 网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。爬虫可以通过模拟浏览器访问网页,从而获取...
    Kevin_ZGJ阅读 8,800评论 11 28
  • 咕噜还是蔫蔫的 放不下他,也放不下工作 然后只好带着他去工作 坐爸爸大大车 食欲不好 一口水也不喝 它最爱的蜂蜜水...
    Tt_80dc阅读 148评论 0 0
  • 前天跟儿子去看万达广场看了电影,上演的是美国漫威的《奇异博士》,讲的是在神经外科手术领域的顶级天才,神经外科医生史...
    陇西读书与写作阅读 6,454评论 2 4
  • 请赐予我一双清明的神目, 让我看透这个世界的纷纷扰扰。 请赐予我一颗七窍玲珑的心, 让我审视这个世界的魑魅魍魉。 ...
  • 太阳西斜,金黄色的光线照耀在魁梧的榕树上时,墨绿的叶片亮了。不远处,绯红的墙面投上了两个被细细拉长的身影,一个伫立...
    灵林玖玖阅读 914评论 1 7