【问题标题】:beautiful soup and requests not pulling text from webpage - Python3美丽的汤和请求不从网页中提取文本 - Python3
【发布时间】:2019-02-23 15:51:57
【问题描述】:

我正在尝试获取当前的货币汇率。到目前为止,这是我的脚本:

import requests
from bs4 import BeautifulSoup

# Collect and parse first page
page = requests.get('https://www.xe.com/currencyconverter/convert/? 
Amount=1&From=GBP&To=USD')
soup = BeautifulSoup(page.text, 'lxml')

c_rate=soup.find(class_='converterresult-conversionTo')

但是,当我 print(soup) 它提取元内容和链接 href 时,我已经使用了解析器,同样的问题也发生在 'html.parser' 上

有什么想法吗?,如果你继续我试图找出 1.30451 的页面。

谢谢,

【问题讨论】:

  • 您是否真的查看了您请求的页面并查看了您得到的响应?它是您接受的 HTML 吗?我还会查看您加载该链接时发生的所有请求。
  • @antfuentes87 是的,它说的是响应 [200],链接是我想从中抓取的网页,但我无法获取标签和锚点,它只是提取元数据
  • 这就是我的观点……看看那个回复。他们正在使用 reactjs,因此您要查找的数据不在您请求的页面中(它是从其他请求加载的)。在打开 chrome 开发工具(网络选项卡)的情况下加载页面并查看所有请求。查看xhrfetch 的那些(我认为看到5 或6 个请求正在请求.php 文件)。

标签: python-3.x web-scraping beautifulsoup python-requests


【解决方案1】:

Selenium 可以帮你做到这一点:

from selenium import webdriver
from bs4 import BeautifulSoup
url = 'https://www.xe.com/currencyconverter/convert/?%20Amount=1&From=GBP&To=USD'
browser=webdriver.Firefox()
browser.get(url)

soup=BeautifulSoup(browser.page_source)

rate = soup.select("a[href*=https://www.xe.com/currencycharts/?from=GBP&to=]")[1]
print(rate.text)

输出:

1.30449

如果您将[1]rate 变量中的[2][3][4] 更改为欧元、印度卢比和澳元的 GPB 汇率。

【讨论】:

    猜你喜欢
    • 2021-05-24
    • 2021-03-30
    • 2021-10-01
    • 2019-05-05
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2018-07-31
    • 2015-05-08
    相关资源
    最近更新 更多