Python爬虫从入门到放弃 11 | Python爬虫实战–利用自动化神器Selenium爬取京东商品
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。
本文章纯野生,无任何借鉴他人文章及抄袭等。坚持原创!!
前言
你好。这里是Python爬虫从入门到放弃系列文章。我是SunriseCai。
本文章主要介绍利用Selenium爬虫程序去 获取京东商城的商品。
借助Selenium
可以很方便的进行一些模拟的人为的浏览器操作。
用人话说就是,selenium会驱动浏览器去执行你的命令。
首先,建议移步官方文档进行系统的学习Selenium
,Selenium官方文档Selenium
有很多知识,还请各位参考官方文档去进行系统的学习。
1. 安装Selenium
电脑配置selenium
运行环境只需要三步:
- 安装
selenium
模块 - 下载
webdriver
驱动 - 配置环境变量
1.1 安装selenium模块
- 安装
Selenium
模块。
pip install selenium
1.2 下载webdriver驱动
- 下载一个与浏览器对应的
webdriver
驱动,本文章用chrome做演示。
浏览器 | |
---|---|
Chrome | http://npm.taobao.org/mirrors/chromedriver/ |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
加粗样式 | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
- 看到我的chrome版本为
80.0.3987.149
- 在
webdriver
下载页面这里,找到对应chrome版本的驱动下载即可。(只要版本号前面匹配了就可以,不必所有都一样)
1.3 配置环境变量
配置环境变量有两种方法:
- 放到 Python安装目录下的Scripts文件夹里边;
- 执行时候指定webdriver驱动的路径。
(1)放到 Python安装目录下的Scripts文件夹里边
(2)执行时候指定webdriver驱动的路径。
例如我将
chromedriver.exe
驱动放在F盘的根目录下,那在执行selenium时候可以用executable_path指定webdriver驱动。
from selenium import webdriver
url = 'http://www.baidu.com'
browser = webdriver.Chrome(executable_path=r'F:\chromedriver.exe')
browser.get(url)
1.4 selenium简单示例
还是上面的代码,用百度来做示例。
from selenium import webdriver
url = 'http://www.baidu.com'
browser = webdriver.Chrome(executable_path=r'F:\chromedriver.exe') # 创建一个谷歌浏览器对象
browser.get(url) # 请求url
browser.save_screenshot('baidu.jpg') # 截图
browser.quit() # 瑞出浏览器对象
代码执行后,会发现本地文件夹下多了一个名为baidu.jpg
的图片,看下图。
2. 分析京东商城页面
2.1 分析页面
打开首页,在搜索框输入需要搜索的商品。然后点击搜索
这里以口罩
商品做演示。
获取搜索框的xpath表达式,如下图:
代码如下:
from selenium import webdriver
class JdSpider(object):
def __init__(self):
self.url = 'https://www.jd.com/'
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized") # 最大化运行窗口 可不添加
self.browser = webdriver.Chrome(executable_path=r'F:\chromedriver.exe', options=options)
def __del__(self):
self.browser.close()
def search_goods(self):
self.browser.get(self.url)
self.browser.find_element_by_xpath('//*[@id="key"]').send_keys('口罩') # 输入内容
self.browser.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click() # 模拟点击按钮
if __name__ == '__main__':
spider = JdSpider()
spider.search_goods()
运行代码的结果如下:
2.2 需要提取的数据
接下来需要提取的内容就就是价格
,商品名称
,评价人数
,店铺名
。
后续的部分就不再解析了,就只靠你们自己啦!!!
3. 完整代码
完整代码可以参考该博文,python爬虫入门 ✦ selenium 爬取京东的所有商品信息
– 点击直达,没错,也是我水的博文。
- 有任何疑问请先自己动手解决,尽信书则不如无书。
- 实在解决不了可以一起交流。
最后来总结一下本章的内容:
- 介绍了Selenium的安装和配置环境等;
- 介绍了Selenium的简单示例等;
- 介绍了利用Selenium爬虫程序下载京东商城的商品信息。
- 感谢你的耐心观看,点关注,不迷路。
- 为方便菜鸡互啄,欢迎加入QQ群组织:648696280
下一篇文章,名为 《Python爬虫从入门到放弃 12 | 结语》。