Проблема с языком при парсинге сайта
При парсинге страницы данные упорно выдает на китайском языке, хотя в html шаблоне стоит en
from bs4 import BeautifulSoup
import requests
#headers = {"Accept-Language": "en-US,en;q=0.5"}
url = "https://www.joytoy.com/warhammer/6719.html"
page = requests.get(url).content
soup = BeautifulSoup(page, "lxml")
items = soup.find("div", class_="product_right clearfix")
print(items.text.strip())
Ответ:
极限战士入侵者
spot-goods
¥599
比例: 1:18
兵人高:120mm
材质: ABS PVC
产品重量: 0.25kg
包装尺寸: 254*208*176
发布时间: 9,2021
适用年龄: 17+
UPC:6973130371286
Ответы (1 шт):
Автор решения: user510170
→ Ссылка
Вот рабочий код, который вернёт вам то что Вам нужно:
from bs4 import BeautifulSoup
from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options
url = 'https://www.joytoy.com/warhammer/6719.html'
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
}
def get_result(url, headers):
chrome_options = Options()
chrome_options.binary_location = "/opt/google/chrome/google-chrome"
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=chrome_options, executable_path=".../chromedriver_linux64/chromedriver")
driver.get(url)
time.sleep(10) # Можно ждать до загрузки страницы, но проще подождать 10 секунд, их хватит с запасом
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
items = soup.find("div", class_="product_right clearfix")
print(items.text.strip())
def main():
get_result(url=url, headers=headers)
if __name__ == "__main__":
main()
Вывод:
ULTRAMARINES INCURSORS
In-stock
$119.99
Product Scale: 1:18
Soldier Size:120mm
Material: ABS PVC
Weight: 0.25kg
Packing size(mm): 254*208*176
Release: 9,2021
Applicable Age: 17+
UPC:6973130371286
