【Python】爬虫获取购物网站的商品信息、商品图片

【Python】爬虫、爬取购物网站数据、Selenium安装教程及环境搭建

  • 前言
  • 一、Selenium安装
  • 二、Chrome安装驱动:
  • 三、
  • 四、成果展示:
  • 五、结束语:

【Python】爬虫、爬取购物网站数据、Selenium安装教程及环境搭建
)

前言

Selenium是一个用电脑模拟人操作浏览器网页,可以实现自动化,测试等!本文主要使用Selenium库与chrome浏览器进行数据获取。

一、Selenium安装

pip install selenium

二、Chrome安装驱动:

chromedriver
注意:chrome驱动要和chrome浏览器版本对应
1:在chrome浏览器地址栏中输入:chrome://version
【Python】爬虫获取购物网站的商品信息、商品图片_第1张图片2:下载对应版本的chromedriver
打开链接:
chromedriver

【Python】爬虫获取购物网站的商品信息、商品图片_第2张图片
3:配置驱动
将解压后的chromedriver移动到/usr/local/bin目录下

三、

这里是引用

爬虫代码:

from selenium import webdriver
import time
import csv
def drop_down():
    """执行页面滚动的操作"""  # javascript
    for x in range(1, 12, 2):  # 1 3 5 7 9 11 在你不断的下拉过程中, 页面高度也会变的
        time.sleep(1)
        j = x / 9  # 1/9  3/9  5/9  9/9
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)  # 执行我们JS代码

key_world = input('请输入你想要获取商品数据: ')
f = open(f'京东{key_world}商品数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '商品标题',
    '商品价格',
    '评论量',
    '店铺名字',
    '标签',
    '商品详情页',
])
csv_writer.writeheader()

# selenium 模拟人的行为 获取数据内容
# selenium 操控 谷歌驱动 然后 操控浏览器
driver = webdriver.Chrome(executable_path="C:/Users/27112/AppData/Local/Google/Chrome/Application/chromedriver.exe")
#此次路径为chrome.exe路径
driver.get('https://www.jd.com/')  # 访问一个网址 打开浏览器 打开网址

driver.find_element_by_css_selector('#key').send_keys(key_world)  # 找到输入框标签
driver.find_element_by_css_selector('.button').click()  # 找到搜索按钮 进行点击
time.sleep(1)
driver.find_element_by_css_selector('#J_filter > div.f-line.top > div.f-sort > a:nth-child(2)').click()
time.sleep(3)



def get_shop_info():
    # 第一步 获取所有的li标签内容
    driver.implicitly_wait(10)
    lis = driver.find_elements_by_css_selector('#J_goodsList ul li')  # 获取多个标签
    # 返回数据 列表 [] 列表里面的元素 <> 对象
    # print(len(lis))
    for li in lis:

        title = li.find_element_by_css_selector('.p-name em').text.replace('\n', '')  # 商品标题 获取标签文本数据
        price = li.find_element_by_css_selector('.p-price strong i').text  # 价格
        commit = li.find_element_by_css_selector('.p-commit strong a').text  # 评论量
        shop_name = li.find_element_by_css_selector('.J_im_icon a').text  # 店铺名字
        href = li.find_element_by_css_selector('.p-img a').get_attribute('href')  # 商品详情页
        icons = li.find_elements_by_css_selector('.p-icons i')
        icon = ','.join([i.text for i in icons])  # 列表推导式  ','.join 以逗号把列表中的元素拼接成一个字符串数据
        dit = {
            '商品标题': title,
            '商品价格': price,
            '评论量': commit,
            '店铺名字': shop_name,
            '标签': icon,
            '商品详情页': href,
        }
        csv_writer.writerow(dit)
        print(title, price, commit, href, icon, sep=' | ')
for page in range(1, 2):
    print(f'正在爬取第{page}页的数据内容')
    time.sleep(1)
    drop_down()
    get_shop_info()  # 下载数据
    driver.find_element_by_css_selector('.pn-next').click()  # 点击下一页

driver.quit()  # 关闭浏览器

四、成果展示:

1:输入需要爬取的商品
在这里插入图片描述
2:自动爬取商品信息
【Python】爬虫获取购物网站的商品信息、商品图片_第3张图片3:自动保存.csv文件
【Python】爬虫获取购物网站的商品信息、商品图片_第4张图片【Python】爬虫获取购物网站的商品信息、商品图片_第5张图片4:自动保存商品展示图片
【Python】爬虫获取购物网站的商品信息、商品图片_第6张图片

五、结束语:

本篇文章讲解到这里啦,此篇文章只做为爬取过程与结果的展示。爬虫我也是上个学期才可以学,对这个比较有兴趣,所以我上个学期Python课程设计做的就是爬虫与数据分析,感兴趣的小伙伴可以给我留言,之后也会出爬虫的代码的详解和爬取数据的分析相关的文章,我肯定有讲的不好的地方,欢迎各位大佬来指正我 。

参考链接:https://ke.qq.com/teacher/3421355804

你可能感兴趣的:(python,爬虫)