day24-京东商品作业

该脚本使用Python的Selenium库爬取京东网站上的电脑商品信息,包括商品名称、价格、评论数、店铺名和商品详情链接。数据被存储到一个名为'电脑.csv'的文件中,每次运行会追加数据。脚本首先设置Chrome浏览器选项,然后搜索关键词'电脑',滚动页面加载更多商品,最后解析页面源码并保存数据。
摘要由CSDN通过智能技术生成
from selenium.webdriver import Chrome, ChromeOptions
import time, csv, os
from bs4 import BeautifulSoup


def analysis_data(html):
    soup = BeautifulSoup(html, 'lxml')
    goods_li = soup.select('#J_goodsList>ul>li.gl-item')
    all_data = []
    for li in goods_li:
        name = li.select_one('.p-name>a').attrs['title']
        price = li.select_one('.p-price i').text
        comment_count = li.select_one('.p-commit a').text
        shop_name = li.select_one('.p-shop a').attrs['title']
        goods_url = 'https:' + li.select_one('.p-name>a').attrs['href']
        all_data.append([name, price, comment_count, shop_name, goods_url])

    result = os.path.exists('files/电脑.csv')
    with open('files/电脑.csv', 'a', encoding='utf-8', newline='') as f:
        writer = csv.writer(f)
        if not result:
            writer.writerow(['商品名称', '价格', '评论数', '店铺名', '商品详情地址'])
        writer.writerows(all_data)


def get_net_data():
    options = ChromeOptions()
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
    b = Chrome(options=options)
    b.implicitly_wait(3)
    b.get('https://www.jd.com')
    b.find_element_by_id('key').send_keys('电脑\n')

    for page in range(5):
        # 滚动
        for _ in range(10):
            b.execute_script('window.scrollBy(0, 800)')
            time.sleep(1)

        # 获取网页源代码, 解析数据
        analysis_data(b.page_source)

        # 点击下一页
        b.find_element_by_class_name('pn-next').click()

    b.close()


if __name__ == '__main__':
    get_net_data()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值