Python 如何使用Selenium从网站获取不同的货币?
我正在尝试学习python中的Selenium,以便从下面的网站(我位于欧洲以外)中获取欧元价格。如果我只是使用BeautifulSoup解析html,它总是以美元为单位给出价格。有人告诉我,Selenium可以按显示的方式显示html代码(这样我就可以知道欧元的价格了),但我不太确定该怎么做 我的代码如下:Python 如何使用Selenium从网站获取不同的货币?,python,selenium,web-scraping,beautifulsoup,Python,Selenium,Web Scraping,Beautifulsoup,我正在尝试学习python中的Selenium,以便从下面的网站(我位于欧洲以外)中获取欧元价格。如果我只是使用BeautifulSoup解析html,它总是以美元为单位给出价格。有人告诉我,Selenium可以按显示的方式显示html代码(这样我就可以知道欧元的价格了),但我不太确定该怎么做 我的代码如下: from selenium import webdriver from selenium.webdriver.common.keys import Keys import os from
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os
from bs4 import BeautifulSoup
import requests
import pandas as pd
import json
url = "https://www.colmar.it/en-gb/Man/Ski/Jackets/C352"
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'lxml')
price = []
for price_tag in soup.find_all('span', class_='product-preview__old-price'):
price.append(price_tag.text)
然后使用以下代码使用BeautifulSoup遍历数据:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os
from bs4 import BeautifulSoup
import requests
import pandas as pd
import json
url = "https://www.colmar.it/en-gb/Man/Ski/Jackets/C352"
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'lxml')
price = []
for price_tag in soup.find_all('span', class_='product-preview__old-price'):
price.append(price_tag.text)
因为我的位置在欧洲以外,所以它总是以美元为单位给我定价:(
有没有办法获得我所看到的html(当我将网站上的交付区域更改为欧洲时)
编辑:我尝试将语言调整为法语,但仍然没有成功。下面是完整代码。还有其他建议吗
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os
from bs4 import BeautifulSoup
import requests
import pandas as pd
import json
url = "https://www.colmar.it/en-gb/Man/Ski/Jackets/C352"
options = webdriver.ChromeOptions()
options.add_argument("--lang=fr");
driver = webdriver.Chrome(options=options)
driver.implicitly_wait(30)
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'lxml')
price = []
for price_tag in soup.find_all('span', class_='product-preview__old-price'):
price.append(price_tag.text)
您可以尝试设置具有特定国家/地区的cookie,请尝试:
url = "https://www.colmar.it/en-gb/Man/Ski/Jackets/C352"
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get(url)
# Delete current country cookie
driver.delete_cookie('usrIpCountry')
# Set a cookie with country France
driver.add_cookie({'name':'usrIpCountry', 'value':'France', 'domain': 'www.colmar.it'})
# Refresh before proceeding
driver.refresh()
soup = BeautifulSoup(driver.page_source, 'lxml')
price = []
for price_tag in soup.find_all('span', class_='product-preview__old-price'):
price.append(price_tag.text)
这应该可以了。祝你好运!你可以尝试在某个国家设置cookie,试试:
url = "https://www.colmar.it/en-gb/Man/Ski/Jackets/C352"
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get(url)
# Delete current country cookie
driver.delete_cookie('usrIpCountry')
# Set a cookie with country France
driver.add_cookie({'name':'usrIpCountry', 'value':'France', 'domain': 'www.colmar.it'})
# Refresh before proceeding
driver.refresh()
soup = BeautifulSoup(driver.page_source, 'lxml')
price = []
for price_tag in soup.find_all('span', class_='product-preview__old-price'):
price.append(price_tag.text)
这应该可以了。祝你好运!在执行获取价格汉克之前,调整脚本以更改国家/地区。有什么建议吗?请查看此处的文档:你需要在屏幕/网页上找到元素,然后执行
单击事件。然后导航到所需页面,并根据需要阅读价格在此之前,它使用cookieusrIpCountry:“FR”
设置国家和显示欧元。它从我使用Firefox/Chrome(tabNetwork
)中的DevTools
以JSON的形式获取数据,以查看从浏览器到服务器的所有请求。当我过滤到只显示XHR
(AJAX
)请求,然后我得到这个url,我可以看到它在响应中得到了什么——我在JSON中看到了CurrencySymbol
设置页面上的数据。在DevTools中,我还可以看到所有标题(即cookies),以查看当我在页面上更改国家时它发送给服务器的内容。我看到带有“FR”的cookie,在执行获取价格汉克之前,调整脚本以更改国家。有关此操作的任何提示?请查看此处的文档:您需要在页面上找到元素屏幕/网页,然后在其上执行单击事件。然后导航到所需页面并阅读价格,就像在使用cookieusrIpCountry:“FR”
设置国家和显示欧元之前一样。它从Firefox/Chrome(tabNetwork
中的I useDevTools
以JSON格式获取数据查看从浏览器到服务器的所有请求。当我筛选为仅显示XHR
(AJAX
)请求时,我得到了这个url,我可以看到它得到了什么响应-我在JSON中看到了CurrencySymbol
。使用XHR(AJAX)是一种流行的方法在DevTools中,我还可以看到所有的标题(即cookies),以查看当我在页面上更改国家时它发送给服务器的内容,并且我看到了带有“FR”的cookie`