当前位置: 首页 > news >正文

过年了,怎么样批量爬取某东商品信息,并做可视化

前言

 

马上就要过年了,大家都在屯年货了网络上商品信息太多,不知道如何选择,今天,我们就用python爬取商品信息,并做可视化。

环境使用

  • python 3.9
  • pycharm

模块使用

  • requests
  • selenium
  • time
  • 谷歌驱动

说明

一、谷歌驱动安装

1.下载网址

CNPM Binaries Mirror

2.文件安装(放置)位置

可以把这个文件理解成一个脚本入口。说它是安装,其实就是把下载的 chromedriver.exe 文件复制到相应的位置。

将文件复制到两个位置:1...\python\Scripts复制一份到安装Python的文件夹中的Scripts文件夹中;2.如果用的是Pycharm,再复制一份到..\python\site-packages\selenium\webdriver\chrome文件中。这个地址可以将鼠标放在Pycharm里面安装库的地方的相应库上就能看到。

二、selenium模块

        之前,我们爬虫是模拟浏览器,但始终不是用的浏览器,但今天我们要说的是另一种爬虫方式,这次不是模拟浏览器,而是用程序去控制浏览器进行一些列操作,也就是selenium。selenium是python的一个第三方库,对外提供的接口可以操控浏览器,比如说输入、点击,跳转,下拉等动作。

  在使用selenium模块之前要做两件事,一是安装selenium模块,可以用终端用pip,也可以在pycharm里的setting安装;二是我们需要下载一款浏览器驱动程序,下载的驱动程序要和浏览器的版本一致。

 代码实现


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time


driver = webdriver.Chrome()
# r'C:\Users\YY\AppData\Local\Programs\Python\Python39\chromedriver.exe'
driver.get('https://www.jd.com/')

def GetInfo():
    input_tag = driver.find_element(By.ID, "key")

    input_tag.send_keys('笔记本') 

    time.sleep(5)

    input_tag.send_keys(Keys.ENTER)

    spider_jd()

def spider_jd():
    goods = driver.find_elements(By.CLASS_NAME,"gl-item")
    for good in goods:
        
        name = good.find_element(By.CSS_SELECTOR,".p-name").text.replace('\n','')
      
        price = good.find_element(By.CSS_SELECTOR,".p-price").text

        link = good.find_element(By.TAG_NAME,"a").get_attribute('href')

        msg = '''
            商品:%s
            价格:%s
            链接:%s
        '''%(name,price,link)
        print(msg)

# GetInfo()

for page in range(1,11):
    print(f'爬取{page}页')
    GetInfo()
    driver.find_element(By.CSS_SELECTOR,'.pn-next').click()
    time.sleep(2)

运行结果

相关文章:

  • 来自 GitHub 2022 的趋势和见解
  • 机器学习--多层感知机、卷积神经网络、循环神经网络
  • C语言灵魂核心——指针深度修炼
  • JSP——标准标签库 (JSTL)
  • ES6 模块化
  • 【初阶数据结构】——双“指针”求解数组常见问题
  • Python基础(二十二):文件操作
  • 数据的存储(C语言)
  • 2022年第十二届APMCM亚太杯1月增赛E题思路分享
  • 欧洲之门——乌克兰
  • DD-1/50 12.5-50mA【接地继电器】
  • 养老院人员定位方案125K芯片AS3933/SI3933/GC3933/PAN3501
  • C语言深度剖析指针
  • Jdbc配置文件连接mysql8.0——通过拼接字符串进行批量增删改操作
  • 【 java 集合】Map 接口常用实现类对比
  • 云原生|kubernetes|安全漏扫神器trivy的部署和使用
  • 记一次靶场实战【网络安全】
  • Linux工具学习之【vim】
  • 基于Python深度学习的垃圾分类代码,用深度残差网络构建
  • 数据结构入门——二叉树(C语言实现)
  • 中国海警局新闻发言人就菲律宾非法登临铁线礁发表谈话
  • ​王毅会见塔吉克斯坦外长穆赫里丁
  • 出35万元为副县长的女友凑购房首付,青海一商人被判缓刑
  • 肖扬任武钢集团董事长、党委书记
  • 2025年一季度上海市国民经济运行情况
  • 北京朝阳法院:未经许可使用他人剧本语句和情节构成侵权