社区首页 >问答首页 >如何从欧洲央行网站上剔除正确的元素

如何从欧洲央行网站上剔除正确的元素
EN

Stack Overflow用户
提问于 2021-03-05 12:15:36
回答 4查看 59关注 0票数 0

我试着从下面的网站上摘录媒体的声明和讲话。

我的问题与这个问题非常相似。Finding the correct elements for scraping a website

代码语言:javascript
代码运行次数:0
复制
from bs4 import BeautifulSoup
from selenium import webdriver

base_url = 'https://www.ecb.europa.eu'
urls = [
    f'{base_url}/press/pr/html/index.en.html',
    f'{base_url}/press/govcdec/html/index.en.html'
]
driver = webdriver.Chrome()

for url in urls:
    driver.get(url)
    soup = BeautifulSoup(driver.page_source, 'html.parser')

    for anchor in soup.select('span.doc-title > a[href]'):
        driver.get(f'{base_url}{anchor["href"]}')
        article_soup = BeautifulSoup(driver.page_source, 'html.parser')

        title = article_soup.select_one('h1.ecb-pressContentTitle').text
        date = article_soup.select_one('p.ecb-publicationDate').text
        paragraphs = article_soup.select('div.ecb-pressContent > article > p:not([class])')
        content = '\n\n'.join(p.text for p in paragraphs)

        print(f'title: {title}')
        print(f'date: {date}')
        print(f'content: {content[0:80]}...')

但是,我已经尝试运行它,但没有得到任何输出。我在HTML方面的经验很少。特别是,我不明白这是什么部分在循环。与CSS相关的东西。

代码语言:javascript
代码运行次数:0
复制
for anchor in soup.select('span.doc-title > a[href]'):

因此,我怀疑它不再起作用了,因为最近欧洲央行网页的布局发生了变化。我猜html引用发生了变化,但我不知道确切的情况

非常感谢你的帮助。

EN

回答 4

Stack Overflow用户

发布于 2021-03-05 12:22:19

我可以知道你到底需要什么答案吗?可以使用.find_all()查找特定标签、类或id的所有元素。Tag:在字符串中键入标记的名称类: Type class_="TheNameOfClass“Id: Type id="NameOFID”

希望这能帮上忙。如果你对此有疑问,一定要问其他任何问题。

票数 0
EN

Stack Overflow用户

发布于 2021-03-08 19:21:04

我需要以下内容

代码语言:javascript
代码运行次数:0
复制
<div class="title"> <h1>Unconventional fiscal and monetary (...) </h1>
<h2 class="ecb-pressContentSubtitle">Keynote speech by Isabel Schnabel, (...)</h2>
<p class="ecb-publicationDate">Frankfurt am Main, 26 February 2021</p>
<p>One of the greatest conundrums (...) 

因此,我的输出将如下所示

标题:非常规财政和货币政策(...)副标题:伊莎贝尔·施纳贝尔的主题演讲,(...)

日期:2019年12月20日

内容:最大的难题之一(...)

票数 0
EN

Stack Overflow用户

发布于 2021-03-09 16:44:24

哦,好的,首先你会在driver = webdriver.Chrome()中得到一个错误。在括号内,您应该粘贴安装的webdriver的确切路径。如果您没有适用于chrome的webdriver,请按照以下说明进行操作。现在,如果你已经在那里指定了webdriver路径,并且不想把它泄露给其他人,那就没问题了。

接下来,您可以使用selenium本身来抓取元素,而不是使用漂亮的汤。使用driver.find_element_by_class_name("")并键入要搜索的类名。在这种情况下,它将是"title“。接下来,您想要获取h1的文本。我不知道如何在selenium中找到孩子,你可以搜索一下,然后使用命令获得h1的代码。将其存储在一个变量中,您可以像这样打印它的文本print(h1.text)。注意:搜索如何从selenium获取标记的子元素,然后使用任何网站上提到的命令,然后使用.text

使用说明:

  1. 检查您的chrome版本
  2. 单击与您的chrome version.
  3. Download相匹配的链接转到此网站
  4. 适合您pc的版本。
  5. 解压缩文件并获取路径并将其粘贴到webdriver.Chrome().

这就是全部。如果我的回答不能让你满意,请一定要问,因为我不是selenium的专家。我也是个学徒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66492436

复制
相关文章
如何在不重新启动phantomjs的情况下修改HTTP代理?
使用Selenium和PhantomJS模拟浏览器访问是一种非常常见的自动化测试技术,而修改HTTP代理也是一个常见需求,因为有时候我们需要测试在不同地理位置下的网站性能,或者需要绕过一些IP限制等等。
阿秋数据采集
2023/03/07
5370
laravel ENV文件
// 运行环境名称APP_ENV=local// 调试模式,开发阶段启用,上线状态禁用。APP_DEBUG=true// 敏感信息加密密钥,可使用 php artisan key:generate 重新生成。APP_KEY=// 项目根目录APP_URL=http://localhost// 缓存驱动,默认使用文件作为缓存。CACHE_DRIVER=file// 回话驱动,默认使用文件存储SESSION。SESSION_DRIVER=file// 队列驱动,默认使用同步模式。QUEUE_DRIVER=syn
cqqipei
2022/11/11
6250
Laravel5.8 共享视图变量
通常我们使用Laravel开发项目,一般情况下都会把公共区域分离,比如我的博客网站的侧边栏:
无道
2019/11/13
9430
Laravel5.8 共享视图变量
用.env文件为NodeJS加载环境变量
使用环境变量是配置 Node.js 程序的好方法。而且许多包或模块可以基于不同的 NODE_ENV 变量的值表现出不同的行为。
疯狂的技术宅
2021/04/23
9.5K0
用.env文件为NodeJS加载环境变量
express 修改不重新启动
npm install -g node-dev package.json 修改如下 { "name": "server", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www", "dev":"node-dev ./bin/www" }, 用 npm run dev 启动
用户6421725
2019/11/04
1.1K0
从.env文件中为NodeJS加载环境变量[每日前端夜话0xA9]
使用环境变量是配置 Node.js 程序的好方法。而且许多包或模块可以基于不同的 NODE_ENV 变量的值表现出不同的行为。
疯狂的技术宅
2019/08/15
3.9K0
怎么重新启动协议服务器,ssl协议怎么开启
3.重新打开网站检查。对于chrome浏览器,SSL 和 TLS都协议是默认开启的,可以按下F12,然后在开发者工具中查看当前使用的协议版本。
全栈程序员站长
2022/08/30
2.5K0
laravel 踩坑 env,config
最终结果: env 无法获取到 .env 文件的值 config 方法 只能获取到 bootstrap/cache/config.php 文件里面的值
全栈程序员站长
2022/07/08
4260
如何在Ubuntu 14.04上使用Ansible部署基本PHP应用程序
本教程介绍使用Ansible配置基本PHP应用程序的过程。本教程结束时的目标是让您新Web服务器为基本的PHP应用程序提供服务,而无需在目标腾讯CVM上运行单个SSH连接或手动命令。
所有的酒都不如你
2018/09/28
6K0
Laravel源码解析之ENV配置
Laravel在启动时会加载项目中的 .env文件。对于应用程序运行的环境来说,不同的环境有不同的配置通常是很有用的。 例如,你可能希望在本地使用测试的 Mysql数据库而在上线后希望项目能够自动切换到生产 Mysql数据库。本文将会详细介绍 env 文件的使用与源码的分析。
KevinYan
2019/10/13
2.1K0
避免按ctrl+alt+del重新启动服务器(centos 7)
--//想在centos 7关闭按ctrl+alt+del重新启动服务器的功能,检查发现与centos 6不同。 --//链接:http://blog.itpub.net/267265/viewspace-2638238/ => [20190313]避免按ctrl+alt+del重新启动服务器.txt #  ls -l  /etc/systemd/system/ctrl-alt-del.target ls: cannot access /etc/systemd/system/ctrl-alt-del.target: No such file or directory # systemctl mask ctrl-alt-del.target Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null. # ls -l  /etc/systemd/system/ctrl-alt-del.target lrwxrwxrwx. 1 root root 9 Mar 23 10:55 /etc/systemd/system/ctrl-alt-del.target -> /dev/null --//反转执行systemctl unmask ctrl-alt-del.target,实际上这样并不阻止按键,仅仅导致操作不会重启服务器。 --//在GUI下: # gsettings get org.gnome.settings-daemon.plugins.media-keys logout '<Control><Alt>Delete' Disabling for all users 1. Create a file under the directory '/etc/dconf/db/local.d/' with the settings to be applied globally. For example: # cat /etc/dconf/db/local.d/00-disable-CAD [org/gnome/settings-daemon/plugins/media-keys] logout='' 2. Update the dconf settings: # dconf update Verify if the 'ctrl-alt-del' key combination is disabled globally. # gsettings get org.gnome.settings-daemon.plugins.media-keys logout '' 完整实例:http://github.crmeb.net/u/defu
PHP开发工程师
2021/05/27
1.3K0
vue 重新加载页面_页面重新加载
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/03
4.6K0
[PHP] 框架中.env文件的加载过程
现在很多框架使用根目录的.env文件来配置环境变量,php本身是不会去解析这个文件的,需要使用php代码读取和解析这个文件放入环境变量中
唯一Chat
2020/02/11
1.8K0
Laravel env函数的坑,缓存config配置问题
在写一个接口的时候,需要从 config 配置文件里面读取配置, 默认的配置信息是在 .env 文件里面的。 我是直接从控制器里面 通过 env 函数来去取配置信息的。但是这里就有个坑了,因为 配置文件是可以进行缓存的, 然后我每次进行缓存,打开控制器就会报错了,因为读取不到配置的信息。然后去查了资料才发现问题!
Alone88
2020/06/11
1.6K0
laravel 中配置文件.env解读
大家好,又见面了,我是你们的朋友全栈君。 配置参数 // 运行环境名称 APP_ENV=local // 调试模式,开发阶段启用,上线状态禁用。 APP_DEBUG=true // 敏感信息加密密钥,可使用 php artisan key:generate 重新生成。 APP_KEY= // 项目根目录 APP_URL=http://localhost // 缓存驱动,默认使用文件作为缓存。 CACHE_DRIVER=file // 回话驱动,默认使用文件存储SESSION。 SESSION_DRI
全栈程序员站长
2022/08/09
1.2K0
laravel 中配置文件.env解读
在Laravel 的 Blade 模版中实现定义变量
有时候我们需要在 Laravel 的 Blade 模版中定义一些变量,而 Blade 却没有提供这样的方法/
用户8664418
2021/07/13
3.6K0
使用reboot重新启动Linux操作系统命令
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果; -f:强制重新开机,不调用shutdown指令的功能; -i:在重开机之前,先关闭所有网络界面; -n:重开机之前不检查是否有未结束的程序; -w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
用户7639835
2021/10/13
2.6K0
点击加载更多

相似问题

Laravel重新加载.env变量或重新启动框架

46

无需重新启动即可重新加载process.env变量

223

共享主机: WordPress/laravel 5

23

在Laravel 5.2中重新加载.env常量

21

基于.env.master的Laravel 5加载env文件?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文