python3-抓取京东商城指定商品信息存入Excel

Python admin 4个月前 (05-03) 393次浏览 0个评论

python3-抓取京东商城指定商品信息,并把抓取的数据存入Excel,2018年的时候,学习爬虫的时候写的,发出来,记录下

# coding:utf-8

"""
获取京东商城商品信息爬虫
Author = CrackQuan
Url = https://crackquan.com
Date = 2018.10.17
"""

from openpyxl import workbook
from openpyxl import load_workbook
from selenium import webdriver
from requests.exceptions import RequestException
from bs4 import BeautifulSoup
import time,re

def get_html(url):
    try:
        driver = webdriver.Chrome()
        driver.get(url)
        time.sleep(3)   # 延时3秒
        driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")  # 执行页面向下滑至底部的动作
        time.sleep(3)  # 延时3秒
        html_source = driver.page_source
        driver.close()    # 浏览器关闭
        return html_source
    except RequestException:
        print(RequestException)

def html_parse(html):
    soup = BeautifulSoup(html, 'html5lib')
    total = eval(soup.find('span', 'p-skip').em.b.text)  # 总页数
    items = soup.find_all('div', 'gl-i-wrap')   # 商品信息
    i = 1
    p_name = []
    p_shop = []
    p_comment = []
    p_price = []

    wb1 = load_workbook('京东商品数据.xlsx')    # 打开读取文件
    ws1 = wb1.active    # 获取当前正在操作的表对象

    for item in items:

        p_name.append(item.find('div', 'p-name').a.em.text)   # 商品名称

        p_price.append(item.find('div', 'p-price').strong.text)   # 商品价格

        p_comment.append(item.find('div', 'p-commit').strong.a.text)  # 评论信息

        p_shopinfo = item.find('div', re.compile('p-shop'))  # 店家信息

        if p_shopinfo.a is None:
            p_shop.append(p_shopinfo.span.text)
        else:
            p_shop.append(p_shopinfo.a.text)
        i += 1   # 循环次数

    n = 0
    while n <=59:
        ws1.append([p_name[n], p_price[n],p_shop[n], p_comment[n]])
        n += 1
    wb1.save('京东商品数据.xlsx')
    return total, i

def main():
    product = input("请输入关键词:")
    url = 'https://search.jd.com/Search?keyword=' + str(product) + "&enc=utf-8"   # 第一页
    html_source = get_html(url)   # 获取网页源码
    total, i = html_parse(html_source)  # 解析网页 并输出解析出文本内容
    print("第一页获取完毕!")

    index = 2
    while index <= total:
        page = index * 2 - 1
        url1 = url + "&page=" + str(page)
        html_source = get_html(url1)
        html_parse(html_source)
        print("第{}页获取完成".format(index))
        index += 1

if __name__ == '__main__':
    wb = workbook.Workbook()  # 创建Excel对象
    ws = wb.active  # 获取当前正在操作的表对象
    ws.append(['商品名称','价格', '店家信息', '评论数量']) # 添加数据
    wb.save('京东商品数据.xlsx')
    main()


小泉博客|本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN
协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。转载请注明原文链接:python3-抓取京东商城指定商品信息存入Excel
喜欢 (0)
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到