gpt4 book ai didi

javascript - 在不打开浏览器的情况下使用python从网站获取元素

转载 作者:行者123 更新时间:2023-11-29 19:20:50 25 4
gpt4 key购买 nike

我正在尝试编写一个 python 脚本来解析网站中的一个元素并简单地打印它。

如果没有 selenium,我不知道如何实现这一点的 webdiver ,以便打开处理脚本的浏览器以正确显示网站。

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://groceries.asda.com/asda-webstore/pages/landing/home.shtml#!product/910000800509')
content = browser.page_source
print(content[42000:43000])
browser.close()

这只是一个粗略的草稿,它将打印内容,包括感兴趣的元素 <span class="prod-price-inner">£13.00</span> .

如何在不打开浏览器,甚至根本不打开浏览器的情况下获取感兴趣的元素?

编辑: 我之前尝试使用 urllib或在 bash wget ,它们都缺乏所需的 javascript 解释。

最佳答案

如其他答案所述,此网页需要 javascript 来呈现内容,因此您不能简单地使用 lxml 获取和处理页面, Beautiful Soup ,或类似的图书馆。但是有一种更简单的方法来获取您想要的信息。

我注意到您提供的链接以结构化方式从内部 API 获取数据。根据 url,产品编号似乎是 910000800509。如果您查看 Chrome 开发工具(或浏览器的等效开发工具)中的网络选项卡,您会看到正在向以下 URL 发出 GET 请求:http://groceries.asda.com/api/items/view?itemid=910000800509 .

您可以使用 json 发出这样的请求和 requests模块:

import json
import requests

url = 'http://groceries.asda.com/api/items/view?itemid=910000800509'
r = requests.get(url)
price = r.json()['items'][0]['price']

print price
£13.00

这还可以让您访问有关该产品的许多其他信息,因为该请求会返回一些包含产品详细信息的 JSON。

关于javascript - 在不打开浏览器的情况下使用python从网站获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33092221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com