当前位置: 首页 > 知识库问答 >
问题:

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

翟俊远
2023-03-14

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

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

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()

这只是一份草稿,将打印内容,包括感兴趣的元素

如果没有打开浏览器,或者甚至没有浏览器,我如何获得感兴趣的元素?

编辑:我以前尝试过使用urllibbashwget,这两种方法都缺少所需的javascript解释。


共有2个答案

樊胜
2023-03-14

如果没有打开浏览器,或者甚至没有浏览器,我如何获得感兴趣的元素?

检查您尝试分析的页面后:

http://groceries.asda.com/asda-webstore/pages/landing/home.shtml#!产品/910000800509

我意识到,只有启用了javascript时,它才会显示内容,基于此,您需要使用真正的浏览器。

结论:

如果您需要实现自动化,可以采取以下措施:

江洲
2023-03-14

正如其他答案所提到的,这个网页需要javascript来呈现内容,所以你不能简单地用lxml、美丽汤或类似的库来获取和处理页面。但是有一个更简单的方法来获得你想要的信息。

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

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

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。

 类似资料:
  • 问题内容: 我想使用Python在本地计算机的网络浏览器(Chrome或Internet Explorer)中打开网站。 有没有可以为我做到这一点的模块? 问题答案: 该模块看起来很有希望

  • 当我使用自己的客户端id在浏览器中转到以下URL时: https://account-d.docusign.com/oauth/auth?response_type=token 我需要登录,然后我被重定向到:http://localhost:8888/auth#access_token=myAccessToken 现在我有一个节点。在js应用程序中,我想使用我的访问令牌进行API调用,直到现在,我

  • 问题内容: 我使用以下代码处理使用+ 终止正在运行的Python脚本的情况。 但是,这也会终止我的浏览器。 有没有办法终止脚本并使浏览器保持活动状态,以便我可以继续使用它? 我通常要做的是通过+ 暂停脚本。不幸的是,这经常导致浏览器死机并且不响应。 问题答案: 您可以将CTRL + C +替换为方法以终止脚本,而无需关闭浏览器会话。只需使用以下形式:

  • 我是Python新手,我试图在Debian中使用Selenium,但它不起作用,更具体地说,它似乎处于循环中,什么也没发生。下一个脚本是我使用的测试: 当我中断脚本时,会出现以下文本: 回溯(最近一次通话最后一次): 文件“prueba_parseo.py”,第7行,在browser=webdriver中。Firefox()文件“/usr/local/lib/python2.7/dist pack

  • 本文向大家介绍如何在不使用HTML的情况下创建网站?,包括了如何在不使用HTML的情况下创建网站?的使用技巧和注意事项,需要的朋友参考一下 如果您不了解HTML或CSS,并且想创建一个网站,那么不用担心,您可以轻松创建网站,而无需编写一行HTML代码。 以下是一些无需编写任何HTML或代码行即可构建网站的方法: 网站构造函数 当您购买网站托管计划时,托管公司将为您提供免费的网站构建器选项,以轻松创

  • 首先,如果这是一个很长的代码段,我很抱歉,但是,我想做一个模态窗口,它将你在我的用户表单中写的东西写下来,并要求你确认它。我目前正在学习Javascript,我不允许使用innerHTML,我必须动态地编写“名字”等(名字的文本),不允许只在弹出窗口内写它。我已经让大多数东西工作,但“名字”“名字”等显示为“未定义”,或者(正如你可以看到的,我在这种情况下只用名字尝试的事情)显示为“空”。 希望有