如何使用 python 从 Bombas 中抓取数据
如何使用 python 从 Bombas 中抓取数据
再次欢迎……Bombas 是一个服装品牌。该公司最初销售袜子,并于 2019 年开始销售 T 恤。每购买一件商品,就会将一件衣物捐赠给无家可归者收容所或与无家可归者相关的慈善机构。 ,我们将使用 Python,因此如果您没有使用 Python 的经验,我建议您复习一下您对该语言的了解。
和往常一样,在网页抓取之前,我们必须弄清楚我们需要抓取哪些特定的数据点,在查看一个页面后,我自动看到我们可以获得大量不同的数据点,在这个项目中,我们将抓取产品名称,产品链接和产品的价格在bombas。
让我们开始!
您可能会跳过我从另一篇文章中复制的基本介绍
首先,我们需要安装 Python,确保您安装了 Python 和一些 IDE。 Selenium pro 是一个网络抓取包,它允许我们使用 Python 模拟网络浏览器,最好对网络抓取有更多的了解。 Selenium pro 软件包 — https://pypi.org/project/selenium-pro/
pip 安装 selenium-pro
安装扩展
从 chrome 网上商店下载 Selenium 自动代码生成器,而不是复制粘贴 xpath,这个工具帮助并简化了过程,没有复制粘贴的麻烦。从这里下载—— https://chrome.google.com/webstore/detail/selenium-auto-code-genera/ocimgcpcnobcnmclomhhmjidgoiekeaf/related
让我们开始吧!
现在我们已经设置好了 Python 环境,让我们打开一个空白的 Python 脚本。让我们导入您希望从上一段中预安装的 Selenium pro 包(只需 pip install selenium-pro)。安装后,导入以下包:
从 selenium_pro 导入网络驱动程序
进口时间
从 selenium_pro.webdriver.common.keys 导入密钥
我们使用 Google Chrome 浏览器作为我们的 GUI,但您可以在 Selenium pro 中使用其他浏览器,如果您想使用不同的浏览器,那就去吧!确保在您的机器上安装了特定的浏览器。
现在,在 Selenium pro 中,我们需要定义我们的 Web 浏览器,所以让我们使用以下代码行来完成:
驱动程序 = webdriver.Start()
我建议运行你的所有代码,看看代码是否成功运行,如果是这样,你已经准备好继续了!
管道泵
接下来是有趣的部分,点击我们之前安装的DK扩展,然后点击“开始录制”,这绝对不会是一个复杂的问题,但幸好你有我在这里。
打开 bombas 网站并添加 3 秒等待网站加载并在网站中搜索关键字,然后按 Enter。要添加等待事件,请右键单击屏幕并单击等待 -> 3. 现在,如果您单击扩展程序,您会发现代码已经存在于扩展程序中,如下所示。
# 在浏览器中打开网址
司机.get('[ https://bombas.com/'](https://bombas.com/') )
时间.sleep(3)
伟大的!这会将我们的 Python Chrome 浏览器指向上面的特定网站,“time.sleep(3)”函数只是告诉 Python 在继续之前等待 3 秒,这不是必需的,但无论如何我都输入了。
之后,扩展程序将从 driver.find_element_by_pro 和 click() 中搜索 Id,单击事件将单击 Id
# 点击找到的元素
driver.find_element_by_pro('uK3Ab6SyjUT9vtK').click()
并且 send_keys('shirt') 将输入关键字 shirt 并且 send_keys(Keys.ENTER) 将单击 enter
# 在输入框中输入内容
driver.find_element_by_pro('FQ1bojkntlKW9mM').send_keys('衬衫')
# 按回车键
driver.switch_to.active_element.send_keys(Keys.ENTER)
复制扩展中的代码并测试代码直到这里..
获取数据
惊人的!所以我们继续录制,在姐简网站输入关键词后,将鼠标悬停在产品标题上,然后右键点击scrape->text,获取产品文本。
现在,以同样的方式,您可以抓取链接和价格。在扩展程序中,您的操作将被模仿如下:
# 获取元素的文本
标题=list_element.find_element_by_pro('YSMsyYwwny9oWDw').text
# 获取元素的文本
价格=list_element.find_element_by_pro('8jFO2LDfCKRLuaU').text
# 获取元素的链接
链接=list_element.find_element_by_pro('64YnRxdF0Voz6PD').get_attribute('href')
我们在这里完成了..信不信由你
完整代码
如果您遇到困难或困惑,以下是该项目的完整代码:
从 selenium_pro 导入网络驱动程序
进口时间
从 selenium_pro.webdriver.common.keys 导入密钥
驱动程序 = webdriver.Start()
# 在浏览器中打开网址
司机.get('[ https://bombas.com/'](https://bombas.com/') )
时间.sleep(3)
# 点击找到的元素
driver.find_element_by_pro('uK3Ab6SyjUT9vtK').click()
# 在输入框中输入内容
driver.find_element_by_pro('FQ1bojkntlKW9mM').send_keys('衬衫')
# 按回车键
driver.switch_to.active_element.send_keys(Keys.ENTER)
时间.sleep(3)
# 获取元素的文本
标题=list_element.find_element_by_pro('YSMsyYwwny9oWDw').text
# 获取元素的文本
价格=list_element.find_element_by_pro('8jFO2LDfCKRLuaU').text
# 获取元素的链接
链接=list_element.find_element_by_pro('64YnRxdF0Voz6PD').get_attribute('href')
运行这个程序
现在,要运行该程序,请从扩展名中复制代码并将其保存为 .py 文件 > 打开终端/命令提示符并输入以下行:
python3 PATH/TO/YOUR/.PY/文件
或者,如果您使用的是 Pycharm 等 IDE,只需在其中运行程序即可。当你运行这个程序时,你会看到 Chrome 浏览器打开,它会等待几秒钟,然后将数据点打印到 Python 控制台!
恭喜!我建议你看看你可以改进这个项目的方法:你能添加一个前端,人们可以在其中发布他们的链接吗?可以添加循环以从所有页面中抓取所有链接和文本 否则,您应该为自己完成本教程而感到自豪!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明