python之selenium爬虫

14 篇文章 2 订阅

需求确定

作为一枚程序猿,一台好的电脑不仅得心应手,敲代码的速度也会快的飞起,所以我们就使用【selenium】在京东上抓取一些笔记本电脑信息吧!

京东的反爬强度很高,因为商品信息都是动态加载的,所以一般的爬虫很难在京东上抓取商品数据。

【selenium】爬虫可以让这些商品信息直接展示在源码中,就可以轻松获取想要的商品数据。

项目分析

了解需求后,下面我们具体分析如何实现它。

👉1、进入首页输入【笔记本电脑】
在这里插入图片描述
👉2、点击【搜索】按钮在这里插入图片描述
👉3、跳转到商品列表页,打开【开发者工具】分析页面结构
在这里插入图片描述
开发者工具中的页面结构,就是我们用selenium请求到的页面结构,可以直接分析开发者工具中的页面结构进行页面解析。

下图就是商品信息所在的标签节点:
在这里插入图片描述

可以看到,我们轻松获取到了一页商品的所有信息。

👉4、这是京东的商品列表url

https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91&page=3&s=60&click=0

url很长一串,并且参数复杂。不过放心,这里我们不会去分析它的构成来进行多页爬取。

我们现在使用的是【selenium】,可以直接模拟鼠标的点击操作,自动点击翻页进入下一页。

这里有两种方式可以跳转到下一页。

第一种是商品列表右上方的跳转按钮:
在这里插入图片描述
第二种是商品列表底部的下一页按钮:
在这里插入图片描述
翻页之后再正常解析页面就可以了,接下来我们开始编写代码进行爬取吧!

代码实现

👉1、创建一个chrome浏览器对象

browser = webdriver.Chrome()

👉2、请求京东首页

browser.get(‘https://www.jd.com/’)

👉3、定位到商品搜索框
在这里插入图片描述
【selenium】在定位标签时,有多种方式,请认真查阅:
在这里插入图片描述

这都是一些基本知识,具体要根据实际情况,选择合适的方式获取标签节点。

这里通过定位【id】为【key】的标签来获取搜索框对象:
在这里插入图片描述
input_key = browser.find_element_by_id(“key”)

👉4、在输入框中输入关键字:【笔记本电脑】

搜索框对象有个【send_keys()】方法来进行关键字输入:

input_key.send_keys(‘笔记本电脑’)
在这里插入图片描述
👉5、定位【搜索】按钮,获取到【搜索】按钮标签对象

search_box = browser.find_element_by_xpath(’//button[@class=“button”]’)

👉6、点击【搜索】按钮

使用【click()】方法进行模拟鼠标点击操作,这里是程序自动模拟人为去点击【搜索】按钮的操作:

search_box.click()

👉7、等待页面加载

点击搜索按钮后页面会有个加载过程,这里选择使用【time.sleep(3)】等待3秒以便后续操作。

👉8、爬取完毕后使用【close()】方法关闭浏览器

browser.close()

1
from selenium import webdriver
2
import time
34
# 创建一个chrome浏览器对象
5
browser = webdriver.Chrome()
6
# 请求京东首页
7
browser.get('https://www.jd.com/')
8
# 获取到input输入框节点对象
9
input_key = browser.find_element_by_id("key")
10
# 在输入框中输入笔记本电脑
11
input_key.send_keys('笔记本电脑')
12
# 获取到搜索按钮节点对象
13
search_box = browser.find_element_by_xpath('//button[@class="button"]')
14
# 点击搜索
15
search_box.click()
16
time.sleep(3)
1718
# 爬取完毕后关闭浏览器 
19
browser.close()

现在我们已经成功输入关键字,并点击搜索按钮,成功搜索进入了商品列表页。

🌟我对代码编写过程做了简单的总结:

👉1、创建一个chrome浏览器对象:webdriver.Chrome()

👉2、请求京东首页:browser.get(‘https://www.jd.com/’)

👉3、定位到商品搜索框:browser.find_element_by_id(“key”)

👉4、在输入框中输入关键字【笔记本电脑】:input_key.send_keys(‘笔记本电脑’)

👉5、定位【搜索】按钮,获取到【搜索】按钮标签对象:browser.find_element_by_xpath(’//button[@class=“button”]’)

👉6、点击【搜索】按钮:search_box.click()

👉7、之后页面会有个加载过程,这里选择使用【time.sleep(3)】等待3秒以便后续操作

👉8、爬取完毕后关闭浏览器 ,使用【close()】方法:browser.close()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值