抓取京东商品信息

在使用requests进行商品信息抓取的时候, 发现京东的商品信息都是通过js动态加载到页面中的, 这样我们请求到页面源码以后, 就无法获取到对应的价格, 名称和详情等信息, 需要一种类似浏览器能将页面执行完后, 加载js, 在进行网页内容获取的一种方式。 所以就有了 selenium 这个框架, 他可以调起浏览器, 将页面执行成功后, 在进行获取网页的内容, 优点是, 可以绕过一些动态加载的网页内容, 缺点是效率极低。

CollectJD.py

import requests
from selenium import webdriver
import time
import re
import asyncio
import configparser
from DbUtil import Dbutil
#获取每种规格的信息
def getSkuInfo(sku_code):
    pro = webdriver.Chrome(executable_path="D:\迅雷下载\chromedriver_win32\chromedriver.exe")
    pro.get('https://item.jd.com/'+ sku_code +'.html')
    dic = {
   }
    # 获取价格
    price = pro.find_element_by_xpath('//div[@class="summary-price-wrap"]/div[1]/div[2]/span[1]/span[2]').text
    pro.quit()
    return price
# 获取商品信息, 
def getGoodInfo(url, thumbnail):
    pro = webdriver.Chrome(executable_path="D:\迅雷下载\chromedriver_win32\chromedriver.exe")
    pro.get(url)

    goodInfo = {
   }
    goodInfo['url'] = url
    goodInfo['thumbnail'] = thumbnail

    # 获取轮播图
    img_ele_list = pro.find_elements_by_xpath('//*[@id="spec-list"]/ul/li/img')
    banner_list = []
    for img_ele in img_ele_list:
        banner_list.append('https:img11.360buyimg.com/n1/' + img_ele.get_attribute('data-url'))
    goodInfo['banners'] = banner_list
    # 获取商品名称
    goodInfo['name'] = pro.find_element_by_xpath('//*[@id="crumb-wrap"]/div/div[1]/div[9]').text

    # 获取详情图片
    good_pics_ele_list = pro.find_elements_by_xpath('//*[@id="J-detail-content"]/div[@class="ssd-module-wrap"]/div')
    detail_img_list = []
    for good_pic_ele in good_pics_ele_list:
        pic_url_attr = good_pic_ele
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值